【opencv练习10 - 基础绘制】
来源:互联网 发布:网络词碰瓷是什么意思 编辑:程序博客网 时间:2024/05/21 02:20
/***************************************************** 测试程序 - 【 基础绘制 】 时间:2016年8月22日*******************************************************/#define w 400/** * @function MyEllipse【椭圆】 * @brief Draw a fixed-size ellipse with different angles */void MyEllipse( Mat img, double angle ){ int thickness = 2; int lineType = 8; ellipse( img, Point( w/2, w/2 ), //圆心 Size( w/4, w/16 ), //BoxSize angle, //主轴旋转角度 0, // 360, Scalar( 255, 0, 0 ), //初始化 thickness, lineType );}/** * @function MyFilledCircle * @brief Draw a fixed-size filled circle */void MyFilledCircle( Mat img, Point center ){ int thickness = -1; //-1——填充 int lineType = 8; circle( img, center, w/32, Scalar( 0, 0, 255 ), thickness, lineType );}/** * @function MyPolygon * @function Draw a simple concave polygon (rook) */void MyPolygon( Mat img ){ int lineType = 8; /** Create some points */ Point rook_points[1][20]; rook_points[0][0] = Point( w/4, 7*w/8 ); rook_points[0][1] = Point( 3*w/4, 7*w/8 ); rook_points[0][2] = Point( 3*w/4, 13*w/16 ); rook_points[0][3] = Point( 11*w/16, 13*w/16 ); rook_points[0][4] = Point( 19*w/32, 3*w/8 ); rook_points[0][5] = Point( 3*w/4, 3*w/8 ); rook_points[0][6] = Point( 3*w/4, w/8 ); rook_points[0][7] = Point( 26*w/40, w/8 ); rook_points[0][8] = Point( 26*w/40, w/4 ); rook_points[0][9] = Point( 22*w/40, w/4 ); rook_points[0][10] = Point( 22*w/40, w/8 ); rook_points[0][11] = Point( 18*w/40, w/8 ); rook_points[0][12] = Point( 18*w/40, w/4 ); rook_points[0][13] = Point( 14*w/40, w/4 ); rook_points[0][14] = Point( 14*w/40, w/8 ); rook_points[0][15] = Point( w/4, w/8 ); rook_points[0][16] = Point( w/4, 3*w/8 ); rook_points[0][17] = Point( 13*w/32, 3*w/8 ); rook_points[0][18] = Point( 5*w/16, 13*w/16 ); rook_points[0][19] = Point( w/4, 13*w/16 ); const Point* ppt[1] = { rook_points[0] }; int npt[] = { 20 }; fillPoly( img, ppt, npt, 1, Scalar( 255, 255, 255 ), lineType );}/** * @function MyLine * @brief Draw a simple line */void MyLine( Mat img, Point start, Point end ){ int thickness = 2; int lineType = 8; line( img, start, end, Scalar( 0, 0, 0 ), thickness, lineType );}void main(void){ /// Windows names char atom_window[] = "Drawing 1: Atom"; char rook_window[] = "Drawing 2: Rook"; //创建空文件 Mat atom_image = Mat::zeros( w, w, CV_8UC3 ); Mat rook_image = Mat::zeros( w, w, CV_8UC3 ); //【 1. 绘制原子 Draw a simple atom:】************************************** /// 1.a. Creating ellipses MyEllipse( atom_image, 90 ); MyEllipse( atom_image, 0 ); MyEllipse( atom_image, 45 ); MyEllipse( atom_image, -45 ); /// 1.b. Creating circles MyFilledCircle( atom_image, Point( w/2, w/2) ); //【 2. 绘制象棋 Draw a rook】************************************** // 2.a. 创建凸多边形 MyPolygon( rook_image ); // 2.b. 创建矩形 rectangle( rook_image, Point( 0, 7*w/8 ), Point( w, w), Scalar( 0, 255, 255 ), -1, 8 ); // 2.c. 几根线 MyLine( rook_image, Point( 0, 15*w/16.0 ), Point( w, 15*w/16 ) ); MyLine( rook_image, Point( w/4, 7*w/8 ), Point( w/4, w ) ); MyLine( rook_image, Point( w/2, 7*w/8 ), Point( w/2, w ) ); MyLine( rook_image, Point( 3*w/4, 7*w/8 ), Point( 3*w/4, w ) ); // 3. 显示,移动 imshow( atom_window, atom_image ); moveWindow( atom_window, 0, 200 ); imshow( rook_window, rook_image ); moveWindow( rook_window, w, 200 ); waitKey(0);}
0 0
- 【opencv练习10 - 基础绘制】
- 【opencv练习11 - 随机绘制自定义图形】
- 【opencv练习37 - 多边形阴影绘制】
- 【JAVA语言程序设计基础篇】--图形--练习绘制弧形
- 【JAVA语言程序设计基础篇】--图形--练习绘制多边形
- 【JAVA语言程序设计基础篇】--图形--练习绘制时钟
- opencv c++函数 基础7 随机数发生器&绘制文字
- opencv绘制灰度直方图
- opencv绘制灰度直方图
- 【OpenCV】绘制直方图
- opencv绘制矩形程序
- opencv:绘制直方图
- opencv 绘制半透明图形
- opencv 绘制图像直方图
- 【OpenCV】绘制直方图
- opencv 绘制半透明图形 (
- opencv 绘制灰度直方图
- OpenCV绘制箭头
- Struts1开发简介
- git stash的简单操作
- ImageMagick被爆高危漏洞
- 【内核笔记1】搭建驱动开发环境
- 数组,List,Map学习笔记
- 【opencv练习10 - 基础绘制】
- Http协议简介
- 超实用的JavaScript代码段 Item8 -- js对象的(深)拷贝
- Leetcode算法题(1)Two Sum
- float split后面的某些小数位 保留某些位小树的问题 for循环float类的
- jquery的核心知识(一)
- 收集各类好用的分析工具
- IaaS vs PaaS vs SaaS
- [完]Python函数 range()和arange()