【OpenCV】多边形填充与绘制

多边形填充与绘制

绘制多边形

polylines(canvas, pts, true, Scalar(0, 0, 255), 2, 8, 0)
参数1表示画布,参数2表示点集,参数3表示true,参数4颜色,参数5表示线宽,参数6表示渲染方式,参数7表示相对左上角(0,0)的位置

drawContours(canvas,contours,-1, Scalar(0, 0, 255),-1)

参数1表示画布;参数2表示容器名称;参数3为正表示多边形的绘制,为负表示多边形的填充;参数4表示颜色

填充多边形

fillPoly(canvas, pts, Scalar(122, 155, 255), 8, 0)
参数1表示画布,参数2表示点集,参数3颜色,参数4表示渲染方式,参数5表示相对左上角(0,0)的位置

完整代码

void QuickDemo::polyline_drawing_demo(Mat &image)
{
	Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
	Point p1(100, 100);
	Point p2(350, 100);
	Point p3(450, 280);
	Point p4(320, 450);
	Point p5(80, 400);
	std::vector<Point>pts;//将5个点装入一个容器内。
	pts.push_back(p1);//未初始化数组容量,只能用pushback操作
					  //如果初始化,可以用数组下标操作。
	pts.push_back(p2);
	pts.push_back(p3);
	pts.push_back(p4);
	pts.push_back(p5);
	//fillPoly(canvas, pts, Scalar(122, 155, 255), 8, 0);//填充多边形
	//polylines(canvas, pts, true, Scalar(0, 0, 255), 2, 8, 0);//绘制多边形
	/*
	参数1表示画布,参数2表示点集,参数3表示true,参数4颜色
	参数5表示线宽,参数6表示渲染方式,参数7表示相对左上角(0,0)的位置
	*/
	//单个API搞定图片的绘制填充
	std::vector<std::vector<Point>>contours;
	contours.push_back(pts);
	drawContours(canvas,contours,-1, Scalar(0, 0, 255),-1);
	//参数2表示容器名称,参数3为正表示多边形的绘制,为负表示多边形的填充
	imshow("多边形绘制", canvas);
}

结果展示

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值