opencv 绘制任意多边形方法
opencv提供了很多接口来在图像上绘制基本形状,例如圆形,方形,椭圆,设置文字(默认只支持文字)等,但是如何绘制多边形呢?上面两种方法都可以实现多边形的绘制,但是他们的区别在哪里呢?
·
opencv提供了很多接口来在图像上绘制基本形状,例如圆形,方形,椭圆,设置文字(默认只支持文字)等,但是如何绘制多边形呢?
opencv当然也提供了对应的接口供我们直接绘制,而且还提供了不止一种,方法如下:
void polylines(InputOutputArray img, InputArrayOfArrays pts,
bool isClosed, const Scalar& color,
int thickness = 1, int lineType = LINE_8, int shift = 0 );
void drawContours( InputOutputArray image, InputArrayOfArrays contours,
int contourIdx, const Scalar& color,
int thickness = 1, int lineType = LINE_8,
InputArray hierarchy = noArray(),
int maxLevel = INT_MAX, Point offset = Point() );
上面两种方法都可以实现多边形的绘制,但是他们的区别在哪里呢?
- polylines仅可以实现多边形的绘制,如果要实现多边形的填充,必须要配合fillPoly来实现。需要注意的一点是函数参数中thickness只能是正数,不能为负数,否则会报错(未经验证)。
- drawContours则与circle等接口类似,通过调整thickness的值,可实现多边形的填充。
更多推荐
所有评论(0)