1

我想使用 find contour 和 drawcontour 函数在二进制图像中标记对象。

我还想知道 findcontour 函数的输出数组中存储了哪些数据。

此外,还有其他合适的方法来完成上述操作吗?

4

1 回答 1

0

@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]有五个元素,每个元素都存储形成轮廓的像素的坐标。

于 2015-08-06T09:32:08.913 回答