ImageMagick - Удалить черные рамки

У меня есть около 100 отсканированных изображений (.jpg), все с черными полями (вверху / справа / внизу / слева), например:

input.jpg

Я хочу автоматически обрезать свою картинку, чтобы она была без ЛЮБОЙ черной рамки.

Я пробовал разные коды, лучший результат я получаю с этим кодом (я использую Imagemagick версии 7.0.7-Q16 для Windows):

magick mogrify -bordercolor black -fuzz 20% -trim -format jpg *.jpg

Он генерирует эту картину:

результат с моим кодом

Это хорошее начало, но, как вы все еще можете видеть, на верхнем, правом, нижнем и левом краях изображения осталась черная граница и две черные области на небе.

Я хочу, чтобы картина выглядела так:

желаю результата

Как я могу это сделать?

Любая помощь или намек на мою проблему будут оценены! Заранее спасибо!

3 ответа

В ImageMagick 7.0.8.30 или более поздней версии вы можете теперь выполнять агрессивную обрезку, чтобы избавиться от (большей части) черного цвета. Для одного изображения я обычно использовал бы только магию, но для демонстрационных целей здесь я использую магию mogrify.

Входные данные:

magick mogrify -fuzz 4% -define trim:percent-background=0% -trim +repage -format jpg img.jpg

Отрегулируйте значение фазз в зависимости от ситуации. Но если вы сделаете его слишком большим, ваше изображение будет слишком обрезано.

см. https://imagemagick.org/discourse-server/viewtopic.php?f=4&t=35579

Вы не всегда можете избавиться от всего черного фона одной командой, особенно если изображение слегка повернуто. Возможно, вам придется сбрить некоторые из них повсюду, но нет простого способа узнать, сколько. Также заданный вами цвет фона не влияет на команду обрезки ImageMagick.

Пытаться

magick mogrify -fuzz 20% -trim +repage -shave 7x7 -format jpg *.jpg

Отрегулируйте количество бритья по желанию.

Другая возможность - использовать, например:

      convert sample-in.jpg \
    -alpha set -fill none -fuzz 5% \
    -draw "color 0,0 floodfill" \
    sample-out.webp
  • включить прозрачность
  • floodfillделает пиксели прозрачными там, где они находятся внутри5%черного цвета, начиная поток с0,0
Другие вопросы по тегам