当前位置 主页 > 服务器问题 > Linux/apache问题 >

    opencv3/C++绘制几何图形实例

    栏目:Linux/apache问题 时间:2019-12-12 10:03

    在图像上绘制几何图形

    #include<iostream>
    #include<opencv2/opencv.hpp>
    using namespace cv;
    
    Mat src1, dst;
    void drawRectangle();
    void drawLine();
    void drawEllipse();
    void drawCircle();
    void tsxt();
    
    int main()
    {
      src1 = imread("E:/image/image/daibola.jpg");
      dst = src1.clone();
    
      if(src1.empty())
      {
        printf("can not load image \n");
        return -1;
      }
      drawRectangle();
      drawLine();
      drawEllipse();
      drawCircle();
      tsxt();
      cvNamedWindow("output", CV_WINDOW_AUTOSIZE);
      imshow("output", dst);
      waitKey();
      return 0;
    }
    void drawRectangle()
    {
      Rect rect = Rect(150,30,250,250);
      Scalar color = Scalar(0,255,255);
      rectangle(dst,rect,Scalar(0,255,255),2);
    }
    void drawLine()
    {
      line(dst, Point(450,0),Point(450,150),Scalar(255,0,50),2);
    }
    void drawEllipse()
    {
      ellipse(dst,Point(100,100),Size(50,90),0.0,0.0,360,Scalar(255,255,0),2);
    }
    void drawCircle()
    {
      circle(dst,Point(100,100),60,Scalar(255,0,255),2);
    }
    
    void tsxt()
    {
      putText(dst, "Image",Point(300,330),5,3.0,Scalar(255,0,90),2);
    }
    

    随机绘制大小不等的圆:

    #include<opencv2/opencv.hpp>
    using namespace cv;
    
    Mat dst, src1;
    void randomCircle();
    int main()
    {
      src1 = imread("E:/image/image/daibola.jpg");
      dst = Mat::zeros(src1.size(),src1.type());
      randomCircle();
      return 0;
    }
    
    void randomCircle()
    {
      RNG rng(0);
      Point p1;
      int r;
      for(int i =0; i < 10000; i++)
      {
        p1.x = rng.uniform(0, dst.cols);
        p1.y = rng.uniform(0, dst.rows);
        r = rng.uniform(0, dst.rows/3);
        Scalar color = Scalar(rng.uniform(0,255), rng.uniform(0, 255), rng.uniform(0, 255));
        if(waitKey(100) > 0)
        {
          break;
        }
        circle(dst,p1,r,color,2);
        imshow("circle", dst);
      }
    }

    以上这篇opencv3/C++绘制几何图形实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。