【问题标题】:Remove background, reflection and shadows with Image Magick使用 Image Magick 去除背景、反射和阴影
【发布时间】:2017-08-28 10:08:17
【问题描述】:

我有一些图像,我想使背景透明,去除阴影并去除产品反射。

所以我想做的是

  • 移除反射
  • 去除阴影
  • 移除背景

测试图片

【问题讨论】:

  • 你能显示拍摄前后的照片吗?我对 imagemagick 并不太了解,但您似乎对该程序的要求可能过高。
  • 仅更新前后图片
  • 如果我点击第二张图片,我看不到背景,而第一张图片的背景是白色的......所以对我来说似乎不错,不是吗?
  • 更新后更清楚我想要实现的目标:)

标签: imagemagick image-manipulation


【解决方案1】:

在 Imagemagick 6 中,您可以对图像进行阈值处理并获得黑色区域的边界。然后将原件裁剪到这些范围内。

convert image.png -threshold 50% +write image_thresh50.png -format "%@" info:
229x367+39+0

convert image.png -crop 229x367+39+0 +repage image_cropped.png

如果使用 Imagemagick 7,请将 convert 更改为 magick。

这是你想要的吗?

【讨论】:

  • 会试试这个!..谢谢!..你能解释一下这里采取的步骤吗?以前从未真正使用过 ImageMagick,所以不确定这里会发生什么:)
  • 我认为“229x367+39+0”是宽度、高度等。但是我想为一批不同的图像做些什么?
  • 第一个代码是获取第二个命令中使用的尺寸。如果在 V6 上,您可以将这些维度保存到变量中并在第二个命令中使用它们。在 V7 中,您也许可以在一个命令中完成所有操作。
【解决方案2】:

为了跟进 Bonzo 的评论,在 Unix ImageMagick 6 中,我可以这样做:

cropvals=$(convert image.png -threshold 50% +write hAfUS_thresh50.png -format "%@" info:)
convert image.png -crop $cropvals +repage image_cropped.png

在 Unix Imagemagick 7 中,我可以做到:

magick image.png \( +clone -threshold 50% -set option:cropvals "%@" +delete \) -crop "%[cropvals]" +repage image_cropped2.png

我没有发布这些内容的原因是因为我不知道 OP 使用的是什么操作系统/平台。在询问有关 Imagemagick 的问题时,发布它的版本和运行它的平台总是有帮助的。

对不起,我不知道如何在 Windows 语法中做到这一点

【讨论】:

  • 对不起...应该在 Unix 上说 IM 7 :).. 试了一下,结果在几个图像上都可以。但对于一些人来说,有一些奇怪的裁剪..明天我能不能弄清楚..非常感谢您的指导!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-20
  • 2011-03-10
  • 2018-07-15
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多