将图像上的标题(文本)裁剪到特定边框(按颜色)

问题描述 投票:0回答:1

如何沿着下部红色背景的边框从图像中剪切标题(示例如下)?我正在计划一个批处理过程,即使用数百张具有不同标题的图像(都具有不同的宽度和高度 - 只有它们的位置是不变的)。我正在使用 bash。

  • 示例1:

  • 示例2:

  • 所需输出:

bash image-processing imagemagick ocr crop
1个回答
0
投票

您没有说明您的平台是什么,也没有说明您使用的 Imagemagick 版本是什么。所以我假设 Imagemagick 6 运行在类 Unix 系统(Linux、Mac OSX 或 Windows 10/11 unix)上。

这是 Mark Setchell 在上面的评论中建议的方法。

如果您使用的是 Windows,这里是手动方法。抱歉,我不知道如何处理变量。

将红框的顶部刮掉,然后在顶部拼接一个20像素高的黑色区域作为焊盘。

convert image1.png -fuzz 1% -fill black +opaque "rgb(237,28,36)" -format "%@" info:

返回 WxH+X+Y,我们只想要 Y

364x28+256+182

然后砍掉顶部 182 并拼接回 20 像素高的黑色顶部图像的顶部。

convert image1.png -gravity north -chop 0x182 -background black -splice 0x20 new_image1.png

这是 Unix 语法中更自动化的方式。

top=$(convert image1.png -fuzz 1% -fill black +opaque "rgb(237,28,36)" -format "%@" info: | tr "x" "+" | cut -d+ -f4)
convert image1.png -gravity north -chop 0x$top -background black -splice 0x20 new_image1.png
© www.soinside.com 2019 - 2024. All rights reserved.