资源简介
OpenCV绘图示例代码
参考博客:http://blog.csdn.net/xiaowei_cqu/article/details/7693985
图形生成算法:多边形的扫描转换

代码片段和文件信息
/**
* @file Drawing_1.cpp
* @brief Simple sample code
*/
#include
#include
#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_po
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3936 2011-07-18 17:29 Drawing_1.cpp
文件 8006 2011-07-18 17:29 Drawing_2.cpp
相关资源
- 基于OpenCV的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
- ImageWatch2019.vsix
评论
共有 条评论