相关疑难解决方法(0)

OpenCV findContours 总是为每个对象找到两个轮廓

我刚刚写了一个小程序,它在一个颜色阈值化的二进制图像中搜索轮廓,在阈值化后用 canny 处理,但不知何故,它总是为图像中的每个对象找到两个轮廓。

在绘制找到的轮廓的右下方图像中,您可以看到最大的轮廓被绘制了两次,两个轮廓之间有一点偏移。下图显示了该图像的详细视图。

http://img831.imageshack.us/img831/3641/doubleframe2.png

这里只绘制了最大的轮廓两次,但每隔一个轮廓就会随机发生一次。我只想要每个对象都有一个轮廓,我怎样才能做到这一点?:/

更新:

由 findContours 方法填充的轮廓向量的大小为 8,而它的大小应仅为 4。

更新 2:

这是来自 kinect http://img405.imageshack.us/img405/9761/inputimage.jpg的 rgb 输入图像, 用于颜色阈值我使用以下方法

cv::cvtColor(in, out, CV_BGR2HSV);
cv::inRange(out,
            cv::Scalar(25, 131, 97),
            cv::Scalar(35, 220, 217),
            out);
Run Code Online (Sandbox Code Playgroud)

然后是一个大小为 1 的 rect 元素的腐蚀 + 膨胀。

c++ opencv

2
推荐指数
1
解决办法
2811
查看次数

标签 统计

c++ ×1

opencv ×1