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

在图像上绘制几何图形

#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++绘制几何图形实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 opencv3/C++绘制几何图形实例 的全部内容, 来源链接: utcz.com/p/244657.html

回到顶部