я использую scanimage
со сканером документов (Canon DR-2510C), который поддерживает дуплексное сканирование. К сожалению, его драйвер SANE не поддерживает обнаружение пустых страниц, поэтому со смешанными страницами (односторонние / двусторонние) пустые страницы попадают в результат сканирования.
Я хотел бы автоматически избавиться от этих пустых страниц при последующей обработке результатов сканирования, поэтому я ищу инструмент командной строки, который может определить, состоит ли файл TIFF или PNM в основном из белых пикселей).
Есть идеи?
Это решение, которое я придумал, основано на ответе Лесмана:
for i in "${DEST_DIR}/out"*.pnm; do
histogram=`convert "${i}" -threshold 50% -format %c histogram:info:-`
white=`echo "${histogram}" | grep "white" | sed -n 's/^ *\(.*\):.*$/\1/p'`
black=`echo "${histogram}" | grep "black" | sed -n 's/^ *\(.*\):.*$/\1/p'`
blank=`echo "scale=4; ${black}/${white} < 0.005" | bc`
if [ ${blank} -eq "1" ]; then
echo "${i} seems to be blank - removing it..."
rm "${i}"
fi
done
linux
scanning
image-processing
imaging
Thilo-Alexander Ginkel
источник
источник
Ответы:
Ты можешь использовать ImageMagick инструмент сравнения, чтобы сравнить отсканированные изображения с «главной» пустой страницей. Поскольку мой ImageMagick-fu довольно ограничен, я не могу дать вам пример команды. Тебе придется прочти чертову документацию :
Во второй ссылке даже есть раздел «Пустой факс», в котором объясняется, как обнаружить пустые страницы факса. К сожалению, этот раздел кажется незаконченным. Надеемся, что доступной информации достаточно для начала.
источник
Использовать идентифицировать особенность ImageMagik CLI, как указано здесь:
http://www.imagemagick.org/script/identify.php
С командой:
$ identify -format "%#" source.png
Если количество цветов равно 1, у вас есть пустая страница.
Вы также можете использовать команду:
identify -verbose source.png
Стандартное отклонение, перекос и эксцесс будут 0 для пустого изображения.
источник
Слегка улучшенная версия кода в вопросе:
Изменения:
a.pnm
использоватьtouch .a.pnm
)источник
Мой трюк заключается в сканировании изображений в сжатый без потерь формат (TIFF + сжатие). Таким образом, пустые страницы имеют гораздо меньший размер файла, и я могу обнаружить их с помощью
find
переместите их в другой каталог, быстро проверьте их с помощью средства просмотра, а затем избавьтесь от них.источник
Вы можете сделать шумная отделка с ImageMagick Например:
Страница не пуста, если convert печатает что-то вроде этого:
(пример ввода - отсканированное линейное изображение DIN A4 с разрешением 600 точек на дюйм)
Пусто, если высота / ширина после обрезки подозрительно мала, например:
В отличие от метода пороговой гистограммы, это дает меньше ложных срабатываний, когда у вас есть страницы, которые просто содержат слово или строку текста. С пороговой гистограммой такие страницы могут быть ошибочно определены как пустые.
Рассмотрение размера файла сжатого изображения, то есть приближения энтропии, дает те же ложные срабатывания.
С другой стороны, документы с перфорацией, но в остальном пустые, скорее всего, не распознаются как пустые только с шумной обрезкой. Если вы заботитесь об этом, возможно, имеет смысл сказать ImageMagick, чтобы сначала безоговорочно обрезать пространство. Например, если изображение было отсканировано с разрешением 600 точек на дюйм, и вы хотите игнорировать отступ в 1 дюйм вокруг:
источник