opencv 线,椭圆 圆

//void MyLines() {
//    Point p1 = Point(20, 30);
//    Point p2;
//    p2.x = 400;
//    p2.y = 400;
//    Scalar color = Scalar(0, 0, 255);
//    line(bgImage, p1, p2, color, 1, LINE_AA);
//}
//
//void MyRectangle() {
//    Rect rect = Rect(200, 100, 300, 300);
//    Scalar color = Scalar(255, 0, 0);
//    rectangle(bgImage, rect, color, 2, LINE_8);
//}
//
//void MyEllipse() {
//    Scalar color = Scalar(0, 255, 0);
//    ellipse(bgImage, Point(bgImage.cols / 2, bgImage.rows / 2), Size(bgImage.cols / 4, bgImage.rows / 8), 90, 0, 360, color, 2, LINE_8);
//}
//
//void MyCircle() {
//    Scalar color = Scalar(0, 255, 255);
//    Point center = Point(bgImage.cols / 2, bgImage.rows / 2);
//    circle(bgImage, center, 150, color, 2, 8);
//}
//
//void MyPolygon() {
//    Point pts[1][5];
//    pts[0][0] = Point(100, 100);
//    pts[0][1] = Point(100, 200);
//    pts[0][2] = Point(200, 200);
//    pts[0][3] = Point(200, 100);
//    pts[0][4] = Point(100, 100);
//
//    const Point* ppts[] = { pts[0] };
//    int npt[] = { 5 };
//    Scalar color = Scalar(255, 12, 255);
//
//    fillPoly(bgImage, ppts, npt, 1, color, 8);
//}
//
//void RandomLineDemo() {
//    RNG rng(12345);
//    Point pt1;
//    Point pt2;
//    Mat bg = Mat::zeros(bgImage.size(), bgImage.type());
//    namedWindow("random line demo", CV_WINDOW_AUTOSIZE);
//    for (int i = 0; i < 100000; i++) {
//        pt1.x = rng.uniform(0, bgImage.cols);
//        pt2.x = rng.uniform(0, bgImage.cols);
//        pt1.y = rng.uniform(0, bgImage.rows);
//        pt2.y = rng.uniform(0, bgImage.rows);
//        Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
//    /*    if (waitKey(50) > 0) {
//            break;
//        }*/
//        line(bg, pt1, pt2, color, 1, 8);
//        imshow("random line demo", bg);
//    }
原文地址:https://www.cnblogs.com/zuochanzi/p/7161681.html