OpenCV基本画图功能
来源:互联网 发布:找数据软件 编辑:程序博客网 时间:2024/06/14 16:21
- /**
- * @file Drawing.cpp
- * @brief Simple sample code
- */
- #include <opencv2/core/core.hpp>
- #include <opencv2/highgui/highgui.hpp>
- #define w 400
- using namespace cv;
- /// Function headers
- void MyEllipse( Mat img, double angle );
- void MyFilledCircle( Mat img, Point center );
- void MyPolygon( Mat img );
- void MyLine( Mat img, Point start, Point end );
- /**
- * @function main
- * @brief Main function
- */
- int main( int argc, char **argv ){
- /// Windows names
- char atom_window[] = "Drawing 1: Atom";
- char rook_window[] = "Drawing 2: Rook";
- /// Create black empty images
- 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.0, w/2.0) );
- /// 2. Draw a rook
- /// ------------------
- /// 2.a. Create a convex polygon
- MyPolygon( rook_image );
- /// 2.b. Creating rectangles
- rectangle( rook_image,
- Point( 0, 7*w/8.0 ),
- Point( w, w),
- Scalar( 0, 255, 255 ),
- -1,
- 8 );
- /// 2.c. Create a few lines
- MyLine( rook_image, Point( 0, 15*w/16 ), 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. Display your stuff!
- imshow( atom_window, atom_image );
- cvMoveWindow( atom_window, 0, 200 );
- imshow( rook_window, rook_image );
- cvMoveWindow( rook_window, w, 200 );
- waitKey( 0 );
- return(0);
- }
- /// Function Declaration
- /**
- * @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.0, w/2.0 ),
- Size( w/4.0, w/16.0 ),
- 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;
- int lineType = 8;
- circle( img,
- center,
- w/32.0,
- 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.0, 7*w/8.0 );
- rook_points[0][1] = Point( 3*w/4.0, 7*w/8.0 );
- rook_points[0][2] = Point( 3*w/4.0, 13*w/16.0 );
- rook_points[0][3] = Point( 11*w/16.0, 13*w/16.0 );
- rook_points[0][4] = Point( 19*w/32.0, 3*w/8.0 );
- rook_points[0][5] = Point( 3*w/4.0, 3*w/8.0 );
- rook_points[0][6] = Point( 3*w/4.0, w/8.0 );
- rook_points[0][7] = Point( 26*w/40.0, w/8.0 );
- rook_points[0][8] = Point( 26*w/40.0, w/4.0 );
- rook_points[0][9] = Point( 22*w/40.0, w/4.0 );
- rook_points[0][10] = Point( 22*w/40.0, w/8.0 );
- rook_points[0][11] = Point( 18*w/40.0, w/8.0 );
- rook_points[0][12] = Point( 18*w/40.0, w/4.0 );
- rook_points[0][13] = Point( 14*w/40.0, w/4.0 );
- rook_points[0][14] = Point( 14*w/40.0, w/8.0 );
- rook_points[0][15] = Point( w/4.0, w/8.0 );
- rook_points[0][16] = Point( w/4.0, 3*w/8.0 );
- rook_points[0][17] = Point( 13*w/32.0, 3*w/8.0 );
- rook_points[0][18] = Point( 5*w/16.0, 13*w/16.0 );
- rook_points[0][19] = Point( w/4.0, 13*w/16.0) ;
- 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 );
- }
0 0
- OpenCV基本画图功能
- OpenCV自带例子(五)基本画图功能
- OpenCV画图
- 画图功能
- OpenCV之鼠标画图
- opencv画图函数
- python+opencv画图操作
- 12864 实现画图功能
- c#实现画图功能
- Python画图功能学习
- 【转】MATLAB基本画图
- gdi画图基本步骤
- matlab基本画图
- android基本画图方法
- ios基本画图
- R语言基本画图
- matlab 画图基本介绍
- OpenGL2(画图基本操作)
- 项目管理中用到的Linux开源应用
- [转]python的矩阵处理
- 向对象设计五个基本原则
- 使用Xcode7.1打包上传App Store遇到的问题
- git简单使用
- OpenCV基本画图功能
- SQL SERVER 2005 数据库状态为“可疑”的解决方法【转】
- java常见五种排序方式
- MVC探索之路(2、MVC各组成部分)
- 编译原理(十) SLR文法分析法(算法原理和C++实现)
- 关于cmder--windows下使用linux命令
- vagrant doc
- 追赶法求解三对角方程组
- 五个免费UML建模工具推荐