这是原始图片,我试图从以下位置删除背景:
我正在尝试使用imagemagick从图像中删除背景。当图像有白色产品时,我的脚本效果不佳。它还可以从产品内部去除白色。简而言之,我试图做以下事情
如果我使用0的模糊因子,如下所示,我会删除背景,但它会在它周围创建一个令人讨厌的光环。可以在这做什么?
答案 0 :(得分:2)
我会利用HSL色彩空间,并从亮度通道创建一个alpha蒙版。
convert tshirt.jpg \( \
+clone -colorspace HSL -separate \
-delete 0,1 -fx 'u>0.975?0:1' \) \
-compose CopyOpacity -composite \
out.png
答案 1 :(得分:1)
我会选择一个简单的阈值来挑选白色,然后进行某种过滤以去除噪音/粗糙的边缘。所以,例如
convert shirt.jpg -threshold 99.99% -negate result.jpg
给出了这个:
然后应用一些中值滤波来平滑它:
convert shirt.jpg -threshold 99.99% -median 5 -negate result.jpg
或者更大的过滤器:
convert shirt.jpg -threshold 99.99% -median 11 -negate result.jpg
给出了这个
或者,你可以通过侵蚀和扩张来获得更好的结果......
convert shirt.jpg -threshold 99.99% -negate \
-morphology erode diamond:3 \
-morphology dilate diamond:3 result.jpg
您可能希望使用Anthony Thyssen的flicker_compare
在输入和结果图像之间闪烁以查看您的内容,请参阅here。
./flickercompare -o flick.gif shirt.jpg result.jpg