資源簡介
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
評論
共有 條評論