PNG图像中奇怪的隐藏图层,需要删除

时间:2018-06-12 15:02:03

标签: python imagemagick masking

我必须从图像(白色背景中的汽车)创建二进制掩码 但由于原始图像中某些隐藏层的存在而无法在原始图像上直观地看到,所得到的掩模似乎是错误的。 最初的图像是JPG,但我将其转换为PNG。

附加原始图像和生成的二进制掩码。

Original image

Resulting mask

有谁知道可能是什么原因以及如何对抗它?

我想前段时间我遇到了类似的问题并用以下方法解决了这个问题:

convert -flatten image.png image.png

但这次它没有帮助。

2 个答案:

答案 0 :(得分:0)

没有隐藏的图层......只是普通的JPEG压缩工件,使你的白色不是完全白色。如果您的蒙版仅位于像素的精确位置(255,255,255),则不包括这些像素。如果你无法使用阈值获得电子邮件,那么你应该增加对比度和/或亮度,使你的不完全白色真正的白色。这可以在初始图像的副本上完成(换句话说,您可以从优化的副本中获取蒙版以提取蒙版)。

答案 1 :(得分:0)

正如Xenoid刚才所说,你开始时的图像没有干净的白色背景。所以在ImageMagick中试试这个:

convert S8utS.png -fuzz 2% -fill white -opaque white -fill black +opaque white -morphology open octagon:5 result.png

enter image description here

-morphology关闭黑色区域内的一些白洞。