opencv c++图像几何形状绘制(14)

用途:框住图像中某个物体。(人脸识别)

调用API:

rectangle(输入图像,矩形,颜色(Scalar形式),线宽,线形,shift参数)

circle(输入图像,圆心坐标(Point),半径,颜色,线宽,线形,shift参数);

line(输入图像, 左边界坐标, 右边界坐标, 颜色,线宽,线形,shift参数);

ellipse(输入图像, 椭圆, 颜色,线宽,线形);

矩形定义示例:

Rect rect;
rect.x = 200;
rect.y = 200;
rect.width = 160;
rect.height = 160;

椭圆定义示例:

RotatedRect rrt;
rrt.center = Point(280, 280);
rrt.size = Size(100, 150);

rrt.angle = 90.0;

1、用矩形和圆圈框住某个目标:

void QuickDemo::drawing_Demo(Mat& image)
{
	//定义矩形及其参数
	Rect rect;
	rect.x = 200;
	rect.y = 200;
	rect.width = 160;
	rect.height = 160;
	//在输入图像上绘制矩形
	rectangle(image, rect, Scalar(0, 0,255), 3, 8,0);
	circle(image, Point(280, 280), 80, Scalar(255, 0, 0), 3, 8, 0);
	imshow("绘制演示", image);
}

结果:

 2、对比度框图应用

void QuickDemo::drawing_Demo(Mat& image)
{
	//定义矩形及其参数
	Rect rect;
	rect.x = 200;
	rect.y = 200;
	rect.width = 160;
	rect.height = 160;
	在输入图像上绘制矩形
	//rectangle(image, rect, Scalar(0, 0,255), 3, 8,0);
	//circle(image, Point(280, 280), 80, Scalar(255, 0, 0), 3, 8, 0);

	// 创建同输入图像大小类型的Mat bg,在其上绘制矩形和圆圈
	Mat bg = Mat::zeros(image.size(), image.type());
	rectangle(bg, rect, Scalar(0, 0,255), -1, 8,0);
	circle(bg, Point(280, 280), 80, Scalar(255, 0, 0), 3, 8, 0);
    line(bg, Point(200, 200), Point(360, 360), Scalar(0,255, 0), 3, 8, 0);
	//将输入图像和bg做对比度处理,结果赋予dst
	Mat dst;
	addWeighted(image, 0.9, bg, 0.3, 0, dst);
	imshow("绘制演示", dst);
}

结果:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值