OpenCV,Python:查找轮廓内的像素

时间:2017-04-27 09:38:04

标签: python opencv contour pixels

我正在开展一个项目,经过一些过程后,我能够找到一个二进制图像,其中移动的物体是白色的,其余的都是黑色的:

Binary image

然后,根据它们之间的距离(例如中心的那个),有一种算法可以聚集应该属于一起的斑点。为此,他们使用findContour函数,以便每个用数字标记的blob由其轮廓像素表示(在我的图像中将有5个,中间的一个由两个闭合的blob组成)。算法的输出是属于一起的blob的标志,例如上面的图像,从上到下:(1,[2,3],4,5)。

现在我想为每个这些凝聚的斑点计算一个凹形船体。我有算法来做,但我不能将它应用于外部像素,我需要整个对象的像素!

我该怎么做?

问题在于,如果我从原始图像中检索像素,则会丢失“图像像素”和“斑点”之间的连接。斑点仅包含有关轮廓的信息。

如果您对如何解决这个问题有所了解,我将不胜感激。 :)

1 个答案:

答案 0 :(得分:1)

如何使用connectedComponents(或connectedComponentsWithStats)代替findContours? 它会找到你的blob,同时在它的"输出"中为你提供这些blob中所有像素的列表(不仅仅是轮廓)。返回数组。