我想使用查找轮廓和drawcontour函数在二进制图像中标记对象。
我也想知道在findcontour函数的输出数组中存储了什么数据。
此外,还有其他合适的方法可以执行上述操作吗?
最佳答案
@berak的评论已经回答了。我将添加输出的外观部分。考虑下面是5倍放大版本的35x62图像。该图像有6个斑点或对象,每个斑点或对象都有一个相应的轮廓。
上面的图像存储在Mat对象im
中。 findContour
被应用为cv::findContours(im.clone(), contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
findContour的输出是一个vector<vector<Point>>
对象contours
,如下所示:
因此,它有6个元素,每个元素对应一个轮廓。让我们以contours[0]
为例。看起来像:
contours[0]
具有五个元素,每个元素都存储形成轮廓的像素的坐标。