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

Последний - то, что я хотел бы, чтобы вывод был похож.

Поскольку входные изображения будут различаться по размеру и размеру, а также по количеству общих прямоугольников и их расположению, я подумал, что одним из подходов будет использование какого-либо обнаружения линий. С помощью этой информации мы можем обнаружить самый большой прямоугольник на изображении и использовать его как прямоугольник обрезки. Следующим шагом будет просто использовать imagemagick с -trim вариант , я думаю.

Это правильный подход, и если да, то как я могу его реализовать?

Если нет, то какие другие методы хороши?

1 ответ1

0

Я на самом деле нашел решение для этого самостоятельно. На веб-странице Fred's ImageMagick Script у него есть скрипт Innercrop. Я получаю хороший результат, используя его так:

#!/bin/bash
for f in $(ls *.jpeg); do 
    ./innercrop -m crop -o white -p 1 -f 10% ${f} tmp_${f}
    convert -bordercolor black -shave 5x5 -fuzz 30% -trim tmp_${f} -quality 100 +repage result_${f}
    rm tmp_${f}
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .