1.画圈函数:circle ( img , center_point , radius , color , thickness , lineType)
img:图片
center_point:圆心
radius:半径长度
color:颜色
thickness:线宽
lineType:线类型
///////////////////////
2.椭圆函数:ellipse ( img , center , axes , angle , start_angle , end_angle , color , thickness , lineType)
img:图像
center:椭圆中心点(用Point表示)
axes:椭圆长半轴短半轴(用Size表示)
angle:顺时针旋转角度0-360
start_angle:圆弧起始角的角度
end_angle:圆弧终结角的角度(起始角和终止角可用来取出部分的椭圆)
color:颜色(用Scalar表示)
thickness:线宽(为-1时填充闭合线圈)
linetype:线类型
**旋转角度,起始角,终止角都是顺时针进行旋转。
////////////////////////////////
3.矩形:rectangle ( img , point1 , point2 , color , thickness , lineType )
img:图片
point1:矩形的一个顶点
point2:矩形对角线上的另一个顶点
color:颜色
thickness:线宽
lineType:线类型
/////////////////////////////
4.多边形:fillPoly ( img, ppt, npt, contours, color, lineType );
img:图片
ppt:折线的顶点指针数组
npt:多边形的顶点个数的数组
contours:组成填充区域的线段的数量(通常为1)
color:颜色
lineType:线类型
////////////////////////////////
绘画奥运五环和简易图形代码:
#include
#include
using namespace cv;
using namespace std;
int main() {
Mat img;
img = Mat::zeros(1000, 1000, CV_8UC3);//创建一个大小为1000*1000的图片,图片类型为CV_8UC3
int i, j;//用for循环将图片的底色变为白色
for (i = 0; i < 1000; i++) {
for (j = 0; j < 1000; j++) {
img.at(i, j)[0] = 255;
img.at(i, j)[1] = 255;
img.at(i, j)[2] = 255;
}
}
//circle为画圈函数(图片,圆心,半径,颜色,线的粗细,线的类型)
circle(img, Point(100, 100), 25, Scalar(255, 0, 0), 4, 8, 0);
circle(img, Point(125, 125), 25, Scalar(255, 255, 0), 4, 8, 0);
circle(img, Point(150, 100), 25, Scalar(0, 0, 0), 4, 8, 0);
circle(img, Point(175, 125), 25, Scalar(0, 255, 0), 4, 8, 0);
circle(img, Point(200, 100), 25, Scalar(0, 0, 255), 4, 8, 0);
//以上为画奥运五环
//一下为用图形函数画图
//ellipse为画椭圆的函数(图片,椭圆心,(长轴,短轴),旋转角度,起始点,最终点,颜色,线条粗细,线条类型)
//rectangle为画框函数(图片,框的左上顶点,框的右下顶点,颜色,线条粗细,线条类型)
circle(img, Point(500, 500), 200, Scalar(0, 0, 0), 4, 8, 0);
ellipse(img, Point(500, 550), Size(50, 25), 0, 0, 360, Scalar(0, 0, 0), 4, 4);
circle(img, Point(475, 550), 10, Scalar(0, 0, 0), 4, 8, 0);
circle(img, Point(525, 550), 10, Scalar(0, 0, 0), 4, 8, 0);
ellipse(img, Point(425, 450), Size(30, 25), 0, 0, 360, Scalar(0, 0, 0), 4, 4, 0);
ellipse(img, Point(575, 450), Size(30, 25), 0, 0, 360, Scalar(0, 0, 0), 4, 4, 0);
rectangle(img, Point(415, 440), Point(435, 460), Scalar(0, 0, 0), 4, 8, 0);
rectangle(img, Point(565, 440), Point(585, 460), Scalar(0, 0, 0), 4, 8, 0);
ellipse(img, Point(300, 300), Size(75, 100), 0, 0, 360, Scalar(0, 0, 0), 4, 4, 0);
ellipse(img, Point(700, 300), Size(75, 100), 0, 0, 360, Scalar(0, 0, 0), 4, 4, 0);
namedWindow("奥运五环");
imshow("奥运五环", img);
imwrite("H:\\奥运五环.jpg", img);
waitKey(0);
return 0;
}