【问题标题】:Apply imagemagick transformation on only part of an image, whilst keeping the rest "stock"?仅对图像的一部分应用 imagemagick 变换,同时保持其余“库存”?
【发布时间】:2023-01-12 14:04:44
【问题描述】:

我每天有很多文件被拍照,我需要通过二维码进行整理。问题是,zbarimg 很难拾取照片中的许多 QR 码,所以我一直在尝试先用 imagemagick 处理它们,使用 morphology open、thesholding 等,这产生了更好的结果。 唯一的问题是这些适用于整个图像,这使得文件的其余部分对我来说无法使用,因为我根据颜色和信息处理图像的其余部分,这些信息在处理过程中都被破坏了。谁能给我一个例子,说明如何将我的 imagemagick 滤镜仅应用于图像的一部分(基于坐标很好)并保持图像的其余部分不变,以便我可以继续我的过程?我将把它应用到一个文件夹中的所有图像,所以在大多数情况下它是一个批处理文件为我运行它。

我尝试过使用裁剪,但这显然只剩下图像的裁剪部分,这在尝试处理文件的其余部分时实际上没有帮助。 我在 Windows 11 上运行我的脚本,如果这对解决方案有任何意义的话。 非常感谢! 汤姆

【问题讨论】:

    标签: imagemagick qr-code barcode zbar


    【解决方案1】:

    您可以使用-region 指定要处理的区域。所以从这个开始:

    然后,您可以指定一个区域以用蓝色着色,然后更改该区域以模糊部分蓝色和部分原始区域:

    magick swirl.jpg -region 100x100+50+50 -fill blue -colorize 100% -region 100x100+100+100 -blur x20 result.png
    

    【讨论】:

    • 补充一点。这适用于 Imagemagick 6。但是 -region 在 Imagemagick 7 中根本无法正常工作。在这种情况下,您需要使用蒙版并将处理后的图像与原始图像合成,以便结果仅显示蒙版中的变化地区。
    • @fmw42 感谢您的洞察力,弗雷德。请问您有任何更详细的链接吗?
    • 我的立场得到纠正。 Imagemagick 7 移植文档说 -region “在 ImageMagick 7.0.2-6 及更高版本中受支持”
    • @fmw42 我没有怀疑你一纳秒!只是好奇,总是热衷于学习。
    • 不,是我的错。我只是记得 -region 一开始在 IM 7 中不起作用,不知道它已经被修复了。我打算参考移植文档,但后来我看到它已修复为 7.0.2.6。很高兴你让我参考移植文档并检查它以确定。这是链接imagemagick.org/script/porting.php
    【解决方案2】:

    使用-region 的解决方案可能是最直接的。在不支持 -region 的 ImageMagick 版本中,通常可以通过裁剪和修改括号内的克隆来实现相同的结果。

    magick swirl.jpg ( +clone -crop 100x100+50+50 -fill blue -colorize 50 ) -flatten result.png
    

    克隆、裁剪和修改后的部分保持其原始几何形状,因此 -flatten 操作将其放回输入图像中括号后的位置。

    【讨论】:

      猜你喜欢
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      相关资源
      最近更新 更多