提取连续图像

findcontours(image,

contours,

retr_external,//检索外部元素

chain_approx_none//每个轮廓的所有像素

可以提取图像中连续区域的轮廓(最好输入二值图像)

void drawContours(InputOutputArray image,
InputArrayOfArrays contours,
int contourIdx,
const Scalar& color,
int thickness=1,
int lineType=8,
InputArray hierarchy=noArray(),
int maxLevel=INT_MAX,
Point offset=Point() )

 

函数参数详解:

 

其中第一个参数image表示目标图像,

第二个参数contours表示输入的轮廓组,每一组轮廓由点vector构成,

第三个参数contourIdx指明画第几个轮廓,如果该参数为负值,则画全部轮廓,

第四个参数color为轮廓的颜色,

第五个参数thickness为轮廓的线宽,如果为负值或CV_FILLED表示填充轮廓内部,

第六个参数lineType为线型,

第七个参数为轮廓结构信息,

第八个参数为maxLevel

画出轮廓后,如果想要描述轮廓,(形状描述子)

当得到对象轮廓后,可用boundingRect()得到包覆此轮廓的最小正矩形,minAreaRect()得到包覆轮廓的最小斜矩形。

1)Rect boundingRect(InputArray points)

points:输入信息,可以为包含点的容器(vector)或是Mat。

2) RotatedRect minAreaRect(InputArray points)

points:输入信息,可以为包含点的容器(vector)或是Mat。

最小覆盖圆

void minEnclosingCircle(InputArray points, Point2f& center, float& radius)

参数详解:

InputArray points:输入的二维点集

Point2f& center:表示输出的圆形的中心坐标,是float型

float& radius:输出的最小圆的半径,是float型

上一篇:C# 调用WebService的方法


下一篇:提取轮廓后的画图处理