OpenCV:使用findContours

时间:2019-09-21 01:08:04

标签: python image opencv image-processing contour

我是OpenCV的新手,请多多包涵。

目前,我在二进制图像中同时获得了白色和黑色物体的轮廓。我只想要黑色轮廓(因此值是0)。是否可以调整某种设置以获得此结果?还是可以过滤它们?

也:cv.findContours()确实返回轮廓和层次结构。层次结构是做什么用的?

最后:轮廓似乎由具有多个坐标的数组组成。是什么意思?

1 个答案:

答案 0 :(得分:0)

cv2.findContours查找图像中的所有轮廓。有些在内部,有些在外部,有些嵌套在其他轮廓之内。

因此,该方法返回多个坐标。 层次结构是一个向量,其中包含有关所提取轮廓的这些不同级别(外部,嵌套,内部等)的信息。

不过,您可以设置retrievalMode以根据层次结构过滤轮廓。

在任何情况下它们都不会包含有关颜色的信息,因此您需要以某种方式对其进行过滤。

我可能会补充说,您可以做的明智的事情是在获取轮廓之前对图像进行过滤,因此您只能根据选择的颜色或颜色范围在创建的蒙版中找到轮廓(请参见cv2.inRange