Używam scanimage
ze skanerem dokumentów (Canon DR-2510C), który obsługuje skanowanie dwustronne. Niestety, sterownik SANE nie obsługuje wykrywania pustych stron, więc przy mieszanych stronach (jednostronnych / dwustronnych) puste strony trafiają do wyniku skanowania.
Chciałbym automatycznie pozbyć się tych pustych stron podczas przetwarzania wyników skanowania, więc szukam narzędzia wiersza polecenia, które może wykryć, czy plik TIFF czy PNM składa się głównie z białych pikseli).
Jakieś pomysły?
Oto rozwiązanie, które wymyśliłem na podstawie odpowiedzi Lesmany:
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
źródło
źródło
Odpowiedzi:
Możesz użyć narzędzia do porównywania ImageMagick , aby porównać zeskanowane obrazy z „główną” pustą stroną. Ponieważ mój ImageMagick-fu jest dość ograniczony, nie mogę podać żadnego przykładowego polecenia. Będziesz musiał RTFM :
Drugi link ma nawet sekcję zatytułowaną „Pusty faks”, która wyjaśnia, jak wykryć puste strony faksu. Niestety ta sekcja wydaje się niedokończona. Mamy nadzieję, że dostępne informacje wystarczą, aby zacząć.
źródło
Użyj funkcji identyfikacji interfejsu ImageMagik CLI, jak podano tutaj:
http://www.imagemagick.org/script/identify.php
Z poleceniem:
$ identify -format "%#" source.png
Jeśli liczba kolorów wynosi 1, masz pustą stronę.
Możesz także użyć polecenia:
identify -verbose source.png
Standardowe odchylenie, pochylenie i kurtoza wynoszą 0 dla pustego obrazu.
źródło
%#
zwraca obliczoną wartość skrótu dla obrazu, powinna być%k
imho.Nieznacznie ulepszona wersja kodu w pytaniu:
Zmiany:
a.pnm
, użyjtouch .a.pnm
)źródło
Moją sztuczką jest skanowanie obrazów do bezstratnie skompresowanego formatu (tiff + kompresja). W ten sposób puste strony mają znacznie mniejszy rozmiar pliku i mogę je wykryć
find
, przenieść do innego katalogu, szybko sprawdzić za pomocą przeglądarki, a następnie się ich pozbyć.źródło
Za pomocą ImageMagick możesz wykonać głośne przycinanie , np .:
Strona nie jest pusta, jeśli konwersja drukuje coś takiego:
(przykładowym wejściem jest obraz liniowy zeskanowany w formacie 600 dpi DIN A4)
Jest pusta, jeśli wysokość / szerokość po przycięciu jest podejrzanie mała, np .:
W przeciwieństwie do progowej metody histogramu, daje to mniej fałszywych trafień, gdy masz strony zawierające tylko słowo lub wiersz tekstu. Dzięki histogramowi progowemu takie strony mogłyby zostać błędnie wykryte jako puste.
Patrząc na rozmiar pliku skompresowanego obrazu, tj. Jako przybliżenie entropii, uzyskuje się te same fałszywe wyniki dodatnie.
Z drugiej strony dokumenty z perforacją, ale poza tym puste, prawdopodobnie nie są wykrywane jako puste tylko z głośnym przycięciem. Jeśli ci na tym zależy, warto powiedzieć ImageMagick, by najpierw bezwarunkowo przycięło trochę miejsca na marginesie. Na przykład, jeśli obraz został zeskanowany z rozdzielczością 600 dpi i chcesz zignorować wokół siebie 1 calowy margines:
źródło
%k
należy użyć dla formatu, ponieważ zwraca:Stosowanie:
Źródło: https://imagemagick.org/script/escape.php
źródło