简单的图形函数

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;
}

简单的图形函数_第1张图片

你可能感兴趣的:(OpenCV)