使用 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,视频
我想使用 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,视频