多边形填充与绘制

多边形填充与绘制

1.绘制多边形polylines(输出, 多边形点集, 多边形是否闭合Flag, 线段颜色, 线段粗细(不能-1表示填充), 绘制线段方式, 缩放比例(0是不缩放,4是1/4))
2.填充多边形fillPoly(输出, 多边形点集, 线段颜色, 绘制线段方式, 缩放比例(0是不缩放,4是1/4))
3.drawContours(输出图片, 存放多边形point数组, 绘制第几个多边形(-1表示全部), 绘制/填充的颜色, 线段的粗细(-1表示填充), 绘制线段方式)。drawContours一个函数就可以完成绘制/填充,并且可以同时对contours中的多个多边形进行操作

void QuickDemo::polyline_drawing_demo() {
	Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
	int w = canvas.cols;
	int h = canvas.rows;
	Point p1(100, 100);
	Point p2(300, 150);
	Point p3(300, 350);
	Point p4(250, 450);
	Point p5(50, 450);
	std::vector<Point> pts;//数组初始化时如果给了数组的大小可以用下标赋值,否则要用push_back
	pts.push_back(p1);
	pts.push_back(p2);
	pts.push_back(p3);
	pts.push_back(p3);
	pts.push_back(p4);
	pts.push_back(p5);
	polylines(canvas, pts, true, Scalar(0, 0, 255), 5, 8, 0);//绘制多边形polylines(输出, 多边形点集, 多边形是否闭合Flag, 线段颜色, 线段粗细(不能-1表示填充), 绘制线段方式, 缩放比例(0是不缩放,4是1/4))
	fillPoly(canvas, pts, Scalar(0, 255, 0), 8, 0);//填充多边形fillPoly(输出, 多边形点集, 线段颜色, 绘制线段方式, 缩放比例(0是不缩放,4是1/4))
	//std::vector<std::vector<Point>> contours;//保存需要绘制的多边形数组,也就是同时存放多个多边形
	//contours.push_back(pts);
	//drawContours(canvas, contours, 0, Scalar(0, 0, 255), -1, 8);//drawContours(输出图片, 存放多边形point数组, 绘制第几个多边形(-1表示全部), 绘制/填充的颜色, 线段的粗细(-1表示填充), 绘制线段方式)。drawContours一个函数就可以完成绘制/填充,并且可以同时对contours中的多个多边形进行操作
	imshow("绘制多边形", canvas);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值