OpenCV draw()

来源:互联网 发布:软件测试机构 编辑:程序博客网 时间:2024/06/06 09:08

OpenCV draw()

#include<opencv2\opencv.hpp>//#include<opencv2\imgproc.hpp>//#include<opencv2\highgui.hpp>#include<iostream>using namespace cv;using namespace std;int WINDOW_WIDTH = 600;void drawEllipse(Mat img, double angle) {    int thickness = 2, lineType = 8;    ellipse(img,         Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2),        Size(WINDOW_WIDTH / 4, WINDOW_WIDTH / 16),        angle,        0,        360,        Scalar(255, 129, 0),        thickness,        lineType);}void drawfilledCircle(Mat img, Point center) {    int thickness = -1, lineType = 8;    circle(img,        center,        WINDOW_WIDTH / 32,        Scalar(0, 0, 255),        thickness,        lineType);}void drawPolygon(Mat img) {    int lineType = 8;    Point rookPoints[1][20];    rookPoints[0][0] = Point(WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8);    rookPoints[0][1] = Point(3 * WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8);    rookPoints[0][2] = Point(3 * WINDOW_WIDTH / 4, 13 * WINDOW_WIDTH / 16);    rookPoints[0][3] = Point(11 * WINDOW_WIDTH / 16, 13 * WINDOW_WIDTH / 16);    rookPoints[0][4] = Point(19 * WINDOW_WIDTH / 32, 3 * WINDOW_WIDTH / 8);    rookPoints[0][5] = Point(3 * WINDOW_WIDTH / 4, 3 * WINDOW_WIDTH / 8);    rookPoints[0][6] = Point(3 * WINDOW_WIDTH / 4, WINDOW_WIDTH / 8);    rookPoints[0][7] = Point(26 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8);    rookPoints[0][8] = Point(26 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4);    rookPoints[0][9] = Point(22 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4);    rookPoints[0][10] = Point(22 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8);    rookPoints[0][11] = Point(18 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8);    rookPoints[0][12] = Point(18 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4);    rookPoints[0][13] = Point(14 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 4);    rookPoints[0][14] = Point(14 * WINDOW_WIDTH / 40, WINDOW_WIDTH / 8);    rookPoints[0][15] = Point(WINDOW_WIDTH / 4, WINDOW_WIDTH / 8);    rookPoints[0][16] = Point(WINDOW_WIDTH / 4, 3 * WINDOW_WIDTH / 8);    rookPoints[0][17] = Point(13 * WINDOW_WIDTH / 32, 3 * WINDOW_WIDTH / 8);    rookPoints[0][18] = Point(5 * WINDOW_WIDTH / 16, 13 * WINDOW_WIDTH / 16);    rookPoints[0][19] = Point(WINDOW_WIDTH / 4, 13 * WINDOW_WIDTH / 16);    const Point* ppt[1] = { rookPoints[0] };    int npt[] = { 20 };    fillPoly(img,        ppt,        npt,        1,        Scalar(255, 255, 255),        lineType);}void drawLine(Mat img, Point start, Point end) {    int thickness = 2;    int lineType = 8;    line(img,        start,        end,        Scalar(0, 0, 0),        thickness,        lineType);}int main() {    Mat img = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);    Mat img2 = Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3);    drawEllipse(img, 90.0);    drawEllipse(img, 45.0);    drawfilledCircle(img, Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2));    drawPolygon(img2);    rectangle(img2,        Point(0, 7 * WINDOW_WIDTH / 8),        Point(WINDOW_WIDTH, WINDOW_WIDTH),        Scalar(0, 255, 255),        -1,        8);    drawLine(img2, Point(0, 15 * WINDOW_WIDTH / 16), Point(WINDOW_WIDTH, 15 * WINDOW_WIDTH / 16));    drawLine(img2, Point(WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8), Point(WINDOW_WIDTH / 4, WINDOW_WIDTH));    drawLine(img2, Point(WINDOW_WIDTH / 2, 7 * WINDOW_WIDTH / 8), Point(WINDOW_WIDTH / 2, WINDOW_WIDTH));    drawLine(img2, Point(3 * WINDOW_WIDTH / 4, 7 * WINDOW_WIDTH / 8), Point(3 * WINDOW_WIDTH / 4, WINDOW_WIDTH));    imshow("1", img);    imshow("2", img2);    waitKey(0);    return 0;}


0 0
原创粉丝点击