zoukankan      html  css  js  c++  java
  • 《学习opencv》笔记——关于一些画图的函数


    画图函数


    (1)直线cvLine函数

    其结构


    void cvLine(//画直线
    	CvArr* array,//画布图像
    	CvPoint pt1,//起始点
    	CvPoint pt2,//终点
    	CvScalar color,//颜色
    	int thickness = 1,//宽度
    	int connectivity = 8//反走样
    );

    实例代码


    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1;
    	src1 = cvLoadImage("10.jpg");
    	
    	cvLine(src1,cvPoint(20,20),cvPoint(250,250),CV_RGB(255,0,0),8);
    
    	cvShowImage( "原图", src1);
    	cvWaitKey();
    	return 0;
    }

    输出结果





    (2)矩形cvRectangle函数

    其结构


    void cvRectangle(//画矩形
    	CvArr* array,//画布图形
    	CvPoint pt1,//起始点
    	CvPoint pt2,//终点
    	CvScalar color,//颜色
    	int thickness = 1,//宽度
    );

    实例代码


    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1;
    	src1 = cvLoadImage("10.jpg");
    	
    	cvRectangle(src1,cvPoint(20,20),cvPoint(200,200),CV_RGB(0,255,0),8);
    
    	cvShowImage( "原图", src1);
    	cvWaitKey();
    	return 0;
    }

    输出结果




    (3)圆形cvCircle函数

    其结构


    void cvCircle(//画圆
    	CvArr* array,//画布图像
    	CvPoint cevter,//圆心
    	int radius,//半径
    	CvScalar color,//颜色
    	int thickness = 1,//宽度
    	int connectivity = 8//反走样
    );


    实例代码


    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1;
    	src1 = cvLoadImage("10.jpg");
    	
    	cvCircle(src1,cvPoint(150,150),100,CV_RGB(0,0,255),5);
    
    	cvShowImage( "原图", src1);
    	cvWaitKey();
    	return 0;
    }

    输出结果




    (4)椭圆cvEllipse函数

    其结构


    void cvEllipse(//画椭圆
    	CvArr* img,//画布图像
    	CvPoint center,//中心点
    	CvSize axes,//长短轴
    	double angle,//偏离主轴角度
    	double start_angle,//弧线開始位置
    	double end_angle,//弧线结束位置
    	CvScalar color,//颜色
    	int thickness = 1,//宽度
    	int line_type = 8//
    );

    实例代码


    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1;
    	src1 = cvLoadImage("10.jpg");
    	
    	cvEllipse(src1,cvPoint(150,150),cvSize(150,50),45,0,360,CV_RGB(255,0,0),3);
    
    	cvShowImage( "原图", src1);
    	cvWaitKey();
    	return 0;
    }

    输出结果




    (5)多边形函数

    1.cvFillPoly函数

    其结构


    void cvFillPoly(//画多个实心多边形
    	CvArr* img,//画布图像
    	CvPoint** pts,//点序列
    	int* npt,//计数点数组
    	int contours,//显示几个多边形
    	CvScalar color,//颜色
    	int line_type = 8
    );

    2.cvFillConvexPoly函数

    其结构


    void cvFillConvexPoly(//画一个实心多边形
    	CvArr* img,//画布图像
    	CvPoint* pts,//点序列
    	int npt,//计数点数组
    	CvScalar color,//颜色
    	int line_type = 8
    );

    3.cvPolyLine函数


    void cvFillPoly(//画多个空心多边形
    	CvArr* img,//画布图像
    	CvPoint** pts,//点序列
    	int* npt,//计数点数组
    	int contours,//显示几个多边形
    	int is_closed,//是否从上个多边形尾点開始
    	CvScalar color,//颜色
    	int thickness = 1,//宽度
    	int line_type = 8
    );

    实例代码


    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1,*src2,*src3;
    	src1 = cvLoadImage("7.jpg");
    	src2 = cvLoadImage("8.jpg");
    	src3 = cvLoadImage("9.jpg");
    
    	int arr[3]= {4,4,4};   
    
    	CvPoint ** pt =new CvPoint*[3];
    
    	pt[0] = new CvPoint[4];  
    	pt[0][0] = cvPoint(10,10);  
    	pt[0][1] = cvPoint(210,10);  
    	pt[0][2] = cvPoint(210,210);  
    	pt[0][3] = cvPoint(10,210);  
    	pt[1] = new CvPoint[4]; 
    	pt[1][0] = cvPoint(10,310);  
    	pt[1][1] = cvPoint(210,310);  
    	pt[1][2] = cvPoint(210,510);  
    	pt[1][3] = cvPoint(10,510);  
    	pt[2] = new CvPoint[4]; 
    	pt[2][0] = cvPoint(310,10);  
    	pt[2][1] = cvPoint(410,10);  
    	pt[2][2] = cvPoint(410,210);  
    	pt[2][3] = cvPoint(310,210);  
    
    	cvPolyLine(src1, pt, arr, 3, 1, CV_RGB(0,255,0),5);  
    
    	cvFillPoly(src2, pt,arr,3,CV_RGB(250,0,0));  
    
    	cvFillConvexPoly(src3,pt[0],4,CV_RGB(0,0,255));
    
    	cvShowImage( "原图1", src1);
    	cvShowImage( "原图2", src2);
    	cvShowImage( "原图3", src3);
    	cvWaitKey();
    	return 0;
    }

    输出结果




    (6)绘制文字cvPutText函数

    其结构


    void cvPutText(//绘制文字
    	CvArr* img,//画图图像
    	const char* text,//文字内容
    	CvPoint origin,//文字起始位置
    	const CvFont* font,//文字字体设置
    	CvScalar color//颜色
    );

    实例代码


    #include <cv.h>
    #include <highgui.h>
    #include <stdio.h>
    
    int main(int argc, char** argv)
    {
    	IplImage *src1,*src2,*src3;
    	src1 = cvLoadImage("10.jpg");
    
    	char* str = "I am a student!";
    
    	CvFont* cf = new CvFont();
    
    	cvInitFont(cf,CV_FONT_HERSHEY_SIMPLEX,1.0,0.5);
    
    	cvPutText(src1,str,cvPoint(50,100),cf,CV_RGB(255,0,0));
    
    	cvShowImage( "原图1", src1);
    	cvWaitKey();
    	return 0;
    }

    输出结果




    to be continued





  • 相关阅读:
    vue单页面
    禁止系统默认右键并执行自己的程序
    jquery-ui拖动
    jquery鼠标右键功能 备忘
    日历插件 备忘
    兼容于苹果手机的点击方法
    js判断设备访问入口
    微信小程序点击显示某个view
    微信小程序数量减
    点外层div关闭,点里层不关闭
  • 原文地址:https://www.cnblogs.com/llguanli/p/7281680.html
Copyright © 2011-2022 走看看