Ich verwende scanimage
einen Dokumentenscanner (Canon DR-2510C), der Duplex-Scannen unterstützt. Leider unterstützt der SANE-Treiber die Erkennung leerer Seiten nicht, sodass leere Seiten bei gemischten Seiten (einseitig / doppelseitig) in das Scan-Ergebnis gelangen.
Ich möchte diese leeren Seiten bei der Nachbearbeitung der Scanausgabe automatisch entfernen, daher suche ich nach einem Befehlszeilentool, das erkennen kann, ob eine TIFF- oder PNM-Datei hauptsächlich aus weißen Pixeln besteht.
Irgendwelche Ideen?
Dies ist die Lösung, die ich basierend auf der Antwort von Lesmana gefunden habe:
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
quelle
quelle
Antworten:
Sie können das ImageMagick- Vergleichstool verwenden, um die gescannten Bilder mit einer leeren "Master" -Seite zu vergleichen. Da mein ImageMagick-fu ziemlich begrenzt ist, kann ich Ihnen keinen Beispielbefehl geben. Sie müssen RTFM :
Der zweite Link enthält sogar einen Abschnitt mit dem Titel "Leeres Fax", in dem erläutert wird, wie leere Faxseiten erkannt werden. Leider scheint dieser Abschnitt noch nicht fertig zu sein. Hoffentlich reichen die verfügbaren Informationen aus, um loszulegen.
quelle
Verwenden Sie die hier angegebene Identifizierungsfunktion von ImageMagik CLI:
http://www.imagemagick.org/script/identify.php
Mit Befehl:
$ identify -format "%#" source.png
Wenn die Anzahl der Farben 1 ist, haben Sie eine leere Seite.
Sie können auch den folgenden Befehl verwenden:
identify -verbose source.png
Die Standardabweichung, der Versatz und die Kurtosis sind 0 für ein leeres Bild.
quelle
%#
%k
Gibt einen berechneten Hashwert für das Bild zurück. Er sollte imho sein.Leicht verbesserte Version des Codes in der Frage:
Änderungen:
a.pnm
, verwenden Sietouch .a.pnm
)quelle
Mein Trick besteht darin, die Bilder in ein verlustfrei komprimiertes Format (Tiff + Komprimierung) zu scannen. Auf diese Weise haben leere Seiten eine viel geringere Dateigröße und ich kann sie erkennen
find
, in ein anderes Verzeichnis verschieben, sie schnell mit einem Viewer überprüfen und sie dann entfernen.quelle
Sie können mit ImageMagick ein lautes Trimmen durchführen , z.
Die Seite ist nicht leer, wenn beim Konvertieren etwa Folgendes gedruckt wird:
(Die Beispieleingabe ist ein mit 600 dpi DIN A4 gescanntes lineares Bild.)
Es ist leer, wenn die Höhe / Breite nach dem Zuschneiden verdächtig klein ist, z.
Im Gegensatz zur Schwellenwert-Histogrammmethode führt dies zu weniger Fehlalarmen, wenn Sie Seiten haben, die nur ein Wort oder eine Textzeile enthalten. Mit einem Schwellenhistogramm könnten solche Seiten fälschlicherweise als leer erkannt werden.
Betrachtet man die Dateigröße des komprimierten Bildes, dh als Annäherung an die Entropie, ergibt sich das gleiche falsch positive Ergebnis.
Auf der anderen Seite werden Dokumente mit Perforationen, die aber ansonsten leer sind, wahrscheinlich nicht mit nur einem lauten Zuschnitt als leer erkannt. Wenn Sie sich für diese interessieren, ist es möglicherweise sinnvoll, ImageMagick anzuweisen, zunächst unbedingt einen Randbereich zu kürzen. Wenn das Bild beispielsweise mit 600 dpi gescannt wurde und Sie einen 1-Zoll-Rand ringsum ignorieren möchten:
quelle
%k
sollte für das Format verwendet werden, da es Folgendes zurückgibt:Verwendungszweck:
Quelle: https://imagemagick.org/script/escape.php
quelle