使用python平滑图像轮廓

时间:2018-04-03 13:34:47

标签: python opencv image-processing image-segmentation

我在图像上应用了一些操作来删除白色背景(颜色聚类),但问题是轮廓上的结果不平滑,如您所见:https://imgur.com/a/QLwpE

对于在不模糊整个图像的情况下平滑轮廓有什么建议?

提前致谢!

3 个答案:

答案 0 :(得分:1)

您需要的是图像消光。基本思想是确定像素中存在的背景颜色(白色)的数量,并用黑色替换它。这将对轮廓进行反锯齿。

答案 1 :(得分:0)

我认为一个简单的双边过滤器可以完成这项工作。您还可以尝试更高级的过滤器,例如Total Variation Denoising

请记住,如果您的输入图像彼此非常不同,这个过程永远不会是完美的。

答案 2 :(得分:0)

我找到了解决问题的方法之一。第一步是使用approxPolyDp(https://docs.opencv.org/3.4.0/d3/dc0/group__imgproc__shape.html#ga0012a5fdaea70b8a9970165d98722b4c)近似轮廓。第二步是在轮廓上逐渐透明。

每张图片的结果并不完美,但它更清晰。

希望它有所帮助!