使用 ImageMagick 从图像中裁剪文本字段

Use ImageMagick to crop text field from image

我想使用 ImageMagick 裁剪图像中的所有内容,黑色背景的文本字段除外(请参见下面的示例)。目标是隔离黑色区域以在文本图像上进行额外的工作。我需要为数百张图像执行这些操作,目标区域在图像之间略有变化(图像是电影视频的屏幕截图)。

因此,我需要自适应地识别黑色背景区域,然后从图像中删除其他所有内容。

例如,把这个:

进入这个:

主要问题是感兴趣区域的左下边缘在所有数百张图像中对齐。

根据更多示例,您可以设置阈值并像这样执行 "Connected Component Analysis" 并寻找最宽的黑色区域:

convert frame.png -threshold 30%                     \
    -define connected-components:verbose=true        \
    -define connected-components:area-threshold=5000 \
    -connected-components 4 -auto-level output.png

Objects (id: bounding-box centroid area mean-color):
  1: 720x480+0+0 357.3,232.9 334572 srgb(255,255,255)
  27: 542x40+93+416 426.1,441.0 11028 srgb(0,0,0)

如果我用红色画出识别出的第二个斑点(你可以看到它是黑色的,宽但不是很高):

convert frame.png -fill none -stroke red -draw "rectangle 93,416 635,456" output.png

您可以使用类似的命令将其裁剪掉:

convert frame.png -crop 542x40+93+416 output.png

标签:时间码,time-code,视频