OpenCV学习笔记(一):如何绘图
来源:互联网 发布:矩阵与行列式的区别 编辑:程序博客网 时间:2024/06/05 01:59
由于网上关于如何配置VS的环境的文章已经很多了,所以在此不再赘述,直接进入正题;因为,在读研期间研究方向上需要计算机视觉的部分,所以开始学习OpenCV,从今天(03.12.2016)开始,我会时不时得把学习过程中的知识点记录下来。
编译环境说明:windows8.1 + opencv2.4.10 + VS2010
OpenCV提供了一些基本的绘图操作,比如画圆,画椭圆,画线,画矩形,在图像里插入文字等功能。
1.circle(圆)
1.1circle构造函数:
//! draws the circle outline or a solid circle in the imageCV_EXPORTS_W void circle(CV_IN_OUT Mat& img, //图像Point center, //圆心int radius,//半径const Scalar& color,//颜色 int thickness=1,//粗细 int lineType=8, //线型int shift=0//移动);
其中,必须提供的参数是:点坐标,圆心,半径,以及画线的颜色。
1.2circle(圆)demo
Point center = Point(255,255);//圆心 int r = 100;//半径 //图像 Mat picture(500,500,CV_8UC3,Scalar(255,255,255)); //参数为 图像、 圆心、 半径、 颜色、粗细、线型 circle( picture, center, r, Scalar(0,0,0), 1, 8); imshow("画板",picture); waitKey(6000);
其可以把线的粗细设置为-1来画实心的图形。
2.ellipse(椭圆)
2.1ellipse构造函数
//! draws an elliptic arc, ellipse sector or a rotated ellipse in the imageCV_EXPORTS_W void ellipse(CV_IN_OUT Mat& img, //图像Point center, //圆心Size axes,//轴的长度double angle, //径向夹角(水平面到长轴的夹角)double startAngle, //径向夹角(水平面到长轴的夹角)double endAngle,//结束角度(长轴到结束点的夹角)const Scalar& color, //颜色int thickness=1,//粗细int lineType=8, //线条的类型,见CVLINE的描述。int shift=0//圆心坐标点和数轴的精度);
2.2ellipse(椭圆)demo
ellipse(picture,center,Size( 250, 100 ),0,30,240,Scalar(0,0,0));
函数cvEllipse用来绘制或者填充一个简单的椭圆弧或椭圆扇形。圆弧被ROI矩形所忽略。反走样弧线和粗弧线使用线性分段近似值。所有的角都是以角度的形式给定的。下面的图片将解释这些参数的含义。
Parameters of Elliptic Arc
3.line(直线)
3.1line构造函数
//! draws the line segment (pt1, pt2) in the imageCV_EXPORTS_W void line(CV_IN_OUT Mat& img, //图像Point pt1, //起始点Point pt2, //结束点const Scalar& color,//颜色int thickness=1, //粗细int lineType=8, //线型int shift=0//偏移);
3.2line(直线)demo
//画线 Point a = Point (100,100); //参数为:图像、起始点、结束点、颜色、粗细、线型 line(picture,a,center,Scalar(255,0,0)); imshow("画板",picture);
4.rectangle(矩形)
4.1rectangle构造函数
//! draws the rectangle outline or a solid rectangle with the opposite corners pt1 and pt2 in the imageCV_EXPORTS_W void rectangle(CV_IN_OUT Mat& img, Point pt1, //矩形的一个顶点。Point pt2, //矩形对角线上的另一个顶点const Scalar& color, //线条颜色。int thickness=1,//组成矩形的线条的粗细程度。 //取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形int lineType=8, //线型int shift=0//坐标点的小数点位数 );
4.2rectangle(矩形)demo
draws the rectangle outline or a solid rectanglewith the opposite corners pt1 and pt2 in the image
通过对角线上的两个顶点绘制矩形
//为了方便展示什么叫做 根据对角线两个顶点绘制矩形//现在把上面把绘画直线的用到的那两个【起始点】和【终点】作为矩形的两个对角点//并把直线的颜色更改为 红色 对比显示 //画线 Point a = Point (100,100); //参数为:图像、起始点、结束点、颜色、粗细、线型 line(picture,a,center,Scalar(0,0,255)); imshow("画板:直线",picture); //画矩形 //参数为:承载的图像、顶点、对角点、颜色(这里是蓝色)、粗细、大小 rectangle(picture,a,center,Scalar(255,0,0)); imshow("画板:矩形",picture);
5.putText(插入文字)
5.1putText构造函数
//! renders text string in the imageCV_EXPORTS_W void putText( Mat& img, //图像const string& text,//插入的文字Point org,//文字的位置(文本框左下角) int fontFace, //字体double fontScale, //字体大小Scalar color,//颜色 int thickness=1, int lineType=8, bool bottomLeftOrigin=false );
5.2putText(插入文字)demo
//插入文字//参数为图像,插入的文字,文字的位置(文本框左下角),字体,大小,颜色string words= "XiDianCoder";putText( picture, words, Point(picture.rows/2,picture.cols/4),CV_FONT_HERSHEY_COMPLEX, 1, Scalar(255, 0, 0) );imshow("画板:插入文字",picture);
源码:http://download.csdn.net/detail/xidiancoder/9459429
仅供学习交流,如有错误,敬请指正,谢谢!!!
0 0
- OpenCV学习笔记(一):如何绘图
- OpenCV学习笔记(一):绘图操作
- opencv 简单绘图学习笔记
- OpenCV学习笔记四:绘图
- OpenCV_Python学习笔记--OpenCV中的绘图函数
- 【OpenCV学习笔记】七、基本绘图函数
- OpenCV学习笔记3-几何绘图
- OpenCV学习笔记4-鼠标绘图
- 【OpenCV学习笔记】一、装载、 显示和存储图像及在图像上绘图
- OpenCV学习笔记一
- Opencv学习笔记【一】
- opencv学习笔记一
- Opencv学习笔记(一)
- OpenCV学习笔记(17)OpenCV之基本绘图
- OpenCV学习笔记(18)OpenCV之基本绘图2
- OpenCV笔记(一)——数据结构与基本绘图
- 计算机绘图 学习笔记(一)
- MFC学习笔记之简单绘图一
- channelartlist增加limit属性
- app生命周期
- 安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing .....devices.xml 解决方案
- NotificationListenerService使用小结
- 归并排序 C++实现
- OpenCV学习笔记(一):如何绘图
- mysql互换表中两列数据方法
- Codeforces 631C Report【其他】
- Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)
- 《More Effective C++》7:千万不要重载 &&, ||, 和 ,操作符
- 懒加载
- Java String.split()的一些注意点
- 当你达到了一个高度、你需要做什么?
- Java设计模式之单例模式