资源简介
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
相关资源
- 数字图像处理-3.7混合空间增强法-骨骼
- opencv训练分类器总结与疑问
- Patch_Sparsity代码opencv
- opencv 视频运动物体检测
- 8点算法计算基础矩阵计算机视觉Ope
- 使用Linux的V4L2读取摄像头数据+Opencv图
- opencv_createsamples.exe
- GrabCut-opencv源码注释
- 工程训练物料搬运小车OpenCV程序.rar
- opencv处理图像88分块DCT变换和量化
- opencv实现背景分离
- opencv 车牌 字符识别
- Windows下基于Opencv+Qt的视频聊天客户端
- OpenCV 飞行游戏手势控制源码
- Qt界面多线程opencv调用摄像头
- 基于django的人脸检测Web平台搭建基于
- 基于OpenCV的人脸检测系统设计与实现
- OpenCV 3和Qt5计算机视觉应用开发_源码
- opencv-3.4.11.tar.gz
- tensorflow-2.3.0-cp37-cp37m-win_amd64.whl
- OpenCV for Unity 2.3.3 支持OpenCV 4.0.0
- 自动泊车效果测试-基于OPENCV与深度学
- 多线程获取kinect2.0 视频并保存身体点
- opencv 多指尖检测 源代码
- 基于OpenCV和Halcon的交通冲突视频自动
- 车标检测基于opencv
- opencv分类器.rar
- v4l2 qt实时显示摄像头数据未使用ope
- QT+opencv边缘检测,轮廓提取及轮廓跟
- QT+opencv图像增强,包括高斯平滑,中
评论
共有 条评论