我是靠谱客的博主 无心汉堡,最近开发中收集的这篇文章主要介绍OpenCV4学习记录 图像几何图形绘制 矩形rectangle、圆形circle、线line、椭圆ellipse,随机数、随机颜色,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*
画矩形函数介绍:
void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )
img 图像.
Rect(起始x, 起始y, 宽, 高)
color 线条颜色 (RGB) 或亮度(灰度图像 )(grayscale image)。
thickness 组成矩形的线条的粗细程度。取负值时(如 CV_FILLED)函数绘制填充了色彩的矩形。小于0为填充,大于0为绘制
line_type 线条的类型。见cvLine的描述
shift 坐标点的小数点位数。
画圆函数
cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int lineType=8, int shift=0)
img为源图像指针
center为画圆的圆心坐标
radius为圆的半径
color为设定圆的颜色,规则根据B(蓝)G(绿)R(红)
thickness 如果是正数,表示组成圆的线条的粗细程度。否则,表示圆是否被填充
line_type 线条的类型。默认是8
shift 圆心坐标点和半径值的小数点位数

画线 line() 参数类似矩形和圆
画椭圆 ellipse() 参数类似矩形和圆
*/
`示例代码

void QuickDemo::drawing_demo(Mat &image){
	Rect rect;  //RECT类 rect对象用来存储一个矩形框的左上角坐标、宽度和高度	
	rect.x = 270;
	rect.y = 40;
	rect.width = 100;
	rect.height = 150;	
	
/*	
    rectangle(image, rect, Scalar(0, 255, 255),2,8,0);//绘制矩形 
	//rectangle(image, rect, Scalar(0, 255, 255), -1, 8,0);//填充矩形
	circle(image, Point(265,265), 15, Scalar(255, 0, 0),2,8,0); //绘制圆
	circle(image, Point(265, 265), 15, Scalar(255, 0, 0),-1, 8, 0); //绘制填充圆
	imshow("绘制演示",image);
	*/

	Mat bg = Mat::zeros(image.size(), image.type()); //新建一个图像
	rectangle(bg, rect, Scalar(0, 255, 255), 2, 8, 0);//在新建图像bg上绘制矩形 
	circle(bg, Point(265, 265), 15, Scalar(255, 0, 0), -1, 8, 0); //在新建图像bg上绘制填充圆
	line(bg, Point(270, 40), Point(370,190), Scalar(0,255, 0), 2, 8, 0);//绘制线
	RotatedRect rrt;
	rrt.center = Point(265,265);
	rrt.size = Size(100,70);
	rrt.angle = 0.0;

	ellipse(image, rrt, Scalar(0, 255, 255), 2, 8);
	Mat dst;
	addWeighted(image,0.7, bg,0.3,0,dst);//可以融合两张图,第一张图占比多少,第二章图占比多少,
	imshow("绘制演示", dst);
}

随机画线

void QuickDemo::random_drawing_demo(){
	Mat canvas = Mat::zeros(Size(512,512),CV_8UC3); //新建一个图像
	int w = canvas.cols;
	int h = canvas.rows;
	RNG rng(12345);//随机数
	while (true) {
		int c = waitKey(50); //此处等待100ms,如果实际视频分析的话,永远为waitKey(1);
		if (c == 27) {  // 按键Esc,退出
			break;
		}
		int x1 = rng.uniform(0, w);
		int y1 = rng.uniform(0, h);
		int x2 = rng.uniform(0, w);
		int y2 = rng.uniform(0, h);

		int b = rng.uniform(0, 255);
		int g = rng.uniform(0, 255);
		int r = rng.uniform(0, 255);

		/*canvas = Scalar(0,0,0);*/
		line(canvas, Point(x1, y1), Point(x2, y2), Scalar(b, g, r), 1, LINE_AA, 0);//绘制线   
		imshow("随机绘制演示", canvas);
	}
}

最后

以上就是无心汉堡为你收集整理的OpenCV4学习记录 图像几何图形绘制 矩形rectangle、圆形circle、线line、椭圆ellipse,随机数、随机颜色的全部内容,希望文章能够帮你解决OpenCV4学习记录 图像几何图形绘制 矩形rectangle、圆形circle、线line、椭圆ellipse,随机数、随机颜色所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部