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