首页 文章

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

提问于
浏览
0

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

Binary image

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

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

我怎样才能做到这一点 ?

问题是,如果我从原始图像中检索像素,我将失去“图像像素”和“斑点”之间的连接 . 斑点仅包含有关轮廓的信息 .

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

1 回答

  • 1

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

相关问题