Как автоматически обрезать отсканированные изображения с помощью imagemagick или graphicsmagick?

Как автоматически обрезать отсканированные изображения с помощью imagemagick или graphicsmagick?

У меня есть несколько отсканированных изображений в формате *.jpg. Они отсканированы с помощью сканера A4, в оттенках серого или в цвете. Отсканированные страницы имеют очень разные размеры - некоторые A5, некоторые A6, некоторые визитки и т. д. Крышка сканера белая.

Я хочу обрезать все белые границы с помощью imagemagick или graphicsmagick (эти инструменты, потому что я хочу дополнительно обработать их в пакетном режиме). Я понимаю, что граница сканируется, поэтому не идеально белая, и это иногда может привести к обрезке слишком большой или слишком маленькой части изображения. Однако, используя параметр обрезки с fuzz, я всегда получаю слишком большое изображение. Например, используя изображение визитной карточки ниже:

gm.exe convert -crop -fuzz 50% 01-pixelated.jpg 01-pixelated-gm.jpg

создает изображение, которое все еще не обрезано справа и снизу. Результат тот же, независимо от того, какое число я ввожу в параметр -fuzz.

Не могли бы вы протестировать это и посоветовать командную строку, которая подойдет для этой работы?

введите описание изображения здесь

решение1

В ImageMagick попробуйте эту команду:

convert input.jpg -fuzz 80% -trim +repage output.jpg

Я протестировал его с помощью ImageMagick 6.4.4 Q16 и, взяв за основу изображение, на которое вы ссылаетесь, я получил следующее выходное изображение:

выход

Связанный контент