OpenCV裁剪图像

时间:2013-05-27 02:54:27

标签: opencv image-processing

我的图像中包含黑色背景上的白色簇。白色部分的簇没有连接在一起,但是我想在整个机箱周围而不是在每个簇周围绘制轮廓。图像已附加。

当我试图形成轮廓时,它会围绕单个群集进行。我是否可以获得有关如何形成一个一般轮廓的提示,帮助或代码。enter image description here

3 个答案:

答案 0 :(得分:3)

opencv凸包功能几乎完全符合您的要求。它“找到了一个点集的凸包。”参见:

我说“差不多”,因为你可能不想直接在左下方切割。

另一种方法是进行N次形态学扩张,直到你只有一个连续的白色区域。您需要考虑如何有效地检查是否只剩下一个白色区域。然后侵蚀N次以回到与原始相同的东西(但只是一个连续的形状)。然后找到轮廓。如果你这样做,你需要将图像嵌入更大的黑色背景中,以便有扩张的空间。 参见:

答案 1 :(得分:1)

您可以使用HoughLines查找图片中的行。 你的外缘应该是最长的线。

也许将此与user2151446的扩张理念结合起来可以获得更好的效果。

答案 2 :(得分:0)

或许,您可以尝试将图像划分为许多小块,然后您可以计算每个块中有多少像素为白色,如果像素数大于阈值,则将所有这些块像素设置为白色。那么也许你可以找到一个一般的轮廓。