2016-08-02 4 views
1

Я хотел бы использовать ImageMagick для обрезки всего изображения, кроме текстового поля с черным фоном (см. Пример ниже). Цель состоит в том, чтобы изолировать черную область для дополнительной работы над текстовым изображением. Мне нужно сделать это для сотен изображений, а целевая область слегка сдвинется между изображениями (изображения - захват экрана из видеофильма).Используйте ImageMagick для обрезания текстового поля из изображения

Итак, мне нужно адаптивно определить регион с черным фоном, а затем удалить все остальное из изображения.

Например, превратить это: enter image description here

В эту:
enter image description here

Основной проблемой является то, что нижний левый край области, представляющей интерес выровнен по всем сотни изображений.

+0

Прохладный вопрос, могу ли я иметь еще пару изображений, чтобы проверить, когда я вставай завтра, пожалуйста? –

ответ

1

Тема смотреть на еще несколько примеров, вы могли бы порог и сделать «Connected анализ компонентов» как это и посмотреть на самую широкую черную область:

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 

enter image description here

Вы можете обрезать его с подобной командой:

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

enter image description here

Tages: Timecode, тайм-код, видео

+0

Спасибо @Mark, это выглядит многообещающим. Я проверю его, а также попробую поделиться с вами еще несколькими фотографиями. Есть ли достаточно простой способ сохранить или передать эти координаты посева из подробного вывода? – Bird

+0

Отлично! Возможно, вы захотите немного уменьшить «30%». Вы можете легко захватить координаты, но метод зависит от того, какую ОС вы используете - Linux/OSX/Windows? Вы также можете предварительно обрезать изображение до вероятной области текста, чтобы повысить точность. –

+0

Я только что проверил его на нескольких снимках, и текстовые области выравниваются намного лучше. Я фактически обертываю весь процесс в скрипте Python, используя команду 'subprocess.call', и я думаю, что я могу найти способ вернуть координаты обратно в Python. Это определенно отличная отправная точка, так много возможностей ImageMagick! Спасибо за помощь. – Bird