如何使用opencv修复不完美的形状

时间:2015-06-29 23:02:59

标签: opencv

我有一个像this one这样的图像列表(抱歉,我没有足够的声誉将图像嵌入到我的问题中)并且我想使用opencv修复它们的不完美之处。通过修复'我的意思是鞋子形状的白色区域应该用黑色填充。它应该看起来像this。这种修正是手动获得的。

我没有对形状或我所处理的瑕疵进行分析定义,但上面提到的例子和它所显示的缺陷都很有代表性。这些形状具有平滑渐变的轮廓。我认为识别缺陷的关键是找出轮廓突变的地方。但是,我不知道如何将这种直觉转化为算法(当然,这可以依赖于opencv中的现有算法)。

有人可以建议使用opencv修复这些不完美的方法吗?它不一定要达到完美的结果,但至少要合理地改善原始状态。谢谢!

1 个答案:

答案 0 :(得分:1)

我认为消除这些瑕疵的最佳方法是侵蚀图像然后扩张它以恢复该区域。侵蚀将填补图像的缺陷,但鞋的面积将增加。然后,您可以应用扩张来恢复该区域。

您可以找到here使用两种形态运算符(侵蚀和膨胀)的示例。 Erodedilate文件也可以为您提供帮助。