2017-04-27 54 views
1

我在哪里,我能一个项目时,一些过程后,找到一个二进制图像,其中移动物体是白色的,其余的是全黑:OpenCV的,巨蟒:查找像素的轮廓的内侧

Binary image

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

现在我想计算这些聚集的斑点中的每一个的凹壳。我有算法来做到这一点,但我不能将它应用在外部像素上,我需要整个对象的像素!

我该怎么做?

问题是,如果我从原始图像检索像素,我失去了“图像的像素”和“斑点”之间的连接。斑点只有关于轮廓的信息。

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

回答

0

如何使用connectedComponents(或connectedComponentsWithStats)而不是findContours
它会在给你一个这些斑点(不仅是轮廓)的所有像素列表的同时,在它的“输出”返回数组中找到你的斑点。