Opencv基本绘图

1. cvPoint和 Point

cvPoint可以直接如下使用:cvPoint(x,y);

Point需这样使用:Point pt1 = Point(x,y);

2. cvRectangle与cv:rectangle的用法

cvRentangle和cv::rectangle函数原型对比:

C:void cvRectangle(CvArr* img, CvPoint pt1, CvPoint pt2,CvScalar color, int thickness=1, int line_type=8, int shift=0 )

C++:void rectangle(Mat& img, Point pt1,Pointpt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0)

C++:void rectangle(Mat& img, Rect rec, constScalar& color, int thickness=1, int lineType=8, int shift=0 )

参数介绍:

img图像.

pt1矩形的一个顶点。

pt2矩形对角线上的另一个顶点

color线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。

thickness组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。

line_type线条的类型。见cvLine的描述

shift坐标点的小数点位数。

例子:

Mat matImage = imread();

cv::rectangle(matImage,cvPoint(20,200),cvPoint(200,300),Scalar(255,0,0),1,1,0);

 

IplImage *iplImage = cvLoadImage();

cvRectangle(iplImage,cvPoint(20,200),cvPoint(200,300),Scalar(0,255,255),1,1,0);

3.cvPutText和 cv::putText

C++: void putText(Mat& img, const string& text,Point org, int fontFace, double fontScale, Scalar color, int thickness=1, intlineType=8, bool bottomLeftOrigin=false )

 

cvPutText(CvArr* img, const char* text, CvPoint origin,constCvFont* font, CvScalar color);

 

 

Parameters:  

img – 显示文字所在图像.

text – 待显示的文字.

org – 文字在图像中的左下角 坐标.

font – 字体结构体.

fontFace字体类型, 可选择字体:FONT_HERSHEY_SIMPLEX,FONT_HERSHEY_PLAIN, FONT_HERSHEY_DUPLEX,FONT_HERSHEY_COMPLEX,FONT_HERSHEY_TRIPLEX,FONT_HERSHEY_COMPLEX_SMALL,FONT_HERSHEY_SCRIPT_SIMPLEX,orFONT_HERSHEY_SCRIPT_COMPLEX,以上所有类型都可以配合 FONT_HERSHEY_ITALIC使用,产生斜体效果。

fontScale – 字体大小,该值和字体内置大小相乘得到字体大小

color–文本颜色

thickness– 写字的线的粗细,类似于0.38的笔尖和0.5的笔尖

lineType–线性.

bottomLeftOrigin –true, 图像数据原点在左下角. Otherwise, 图像数据原点在左上角.

 

例子:

//参数为:承载的图片,插入的文字,文字的位置(文本框左下角),字体,大小,颜色

putText(picture,words,Point(picture.rows/2,picture.cols/4),CV_FONT_HERSHEY_COMPLEX,1, Scalar(255, 0, 0) ); 

 

CvFont font; 

cvInitFont(&font, CV_FONT_HERSHEY_PLAIN, 1.5f, 1.5f,0, 2, CV_AA);//设置显示的字体 

cvPutText(pImg,strID, cvPoint(P1.x, P1.y-10), &font,CV_RGB(255, 0, 0));//红色字体注释 

4. cvInitFont初始化字体结构体

void cvInitFont( CvFont* font, int font_face, doublehscale,double vscale, double shear=0,int thickness=1, int line_type=8 );

font被初始化的字体结构体。

font_face:

CV_FONT_HERSHEY_SIMPLEX - 正常大小无衬线字体。

CV_FONT_HERSHEY_PLAIN - 小号无衬线字体。

CV_FONT_HERSHEY_DUPLEX - 正常大小无衬线字体。( 比CV_FONT_HERSHEY_SIMPLEX更复杂)

CV_FONT_HERSHEY_COMPLEX - 正常大小有衬线字体。

CV_FONT_HERSHEY_TRIPLEX - 正常大小有衬线字体 ( 比CV_FONT_HERSHEY_COMPLEX更复杂)

CV_FONT_HERSHEY_COMPLEX_SMALL - CV_FONT_HERSHEY_COMPLEX 的小译本。

CV_FONT_HERSHEY_SCRIPT_SIMPLEX - 手写风格字体。

CV_FONT_HERSHEY_SCRIPT_COMPLEX - 比CV_FONT_HERSHEY_SCRIPT_SIMPLEX更复杂。

这个参数能够由一个值和可选择的CV_FONT_ITALIC字体标记合成,就是斜体字。

hscale字体宽度。如果等于1.0f,字符的宽度是最初的字体宽度。如果等于0.5f,字符的宽度是最初的字体宽度的一半。

vscale字体高度。如果等于1.0f,字符的高度是最初的字体高度。如果等于0.5f,字符的高度是最初的字体高度的一半。

shear字体的斜度。当值为0时 ,字符不倾斜;当值为1.0f时,字体倾斜≈45度,等等。厚度让字母着重显示。函数cvLine用于绘制字母。

thickness字体笔划的粗细程度。

line_type字体笔划的类型,参见cvLine。

5.circle

//参数为:承载的图像、圆心、半径、颜色、粗细、线型 

circle(picture,center,r,Scalar(0,0,0)); 

 

 

 

参考来自:

http://www.myexception.cn/program/1883385.html

http://blog.youkuaiyun.com/ubunfans/article/details/24421981

http://blog.youkuaiyun.com/a200800170331/article/details/49124107

http://blog.youkuaiyun.com/songjunyan/article/details/20548799
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值