Notizen unter Linux scannen
Dieser Artikel beschreibt, wie man handschriftliche Notizen unter Linux einscannen und platzsparend speichern kann.Von Zeit zu Zeit möchte ich handschriftliche Notizen einscannen und platzsparend speichern. Speicherplatz ist zwar billig, aber spätestens dann, wenn ich die Notizen versenden möchte, hätte ich gerne eine möglichst kleine Datei. Mit den Ergebnissen meines Scanners war ich immer unzufrieden. Dann entdeckte ich Noteshrink.
Noteshrink optimiert eingescannte handschriftliche Notizen, reduziert dabei die Datenmenge und speichert das Ergebnis als handliche PDF-Datei ab. Das Skript stammt von Matt Zucker. In einem Blog-Artikel beschreibt er, wie das Programm funktioniert. Kurzgefasst identifiziert das Skript die Hintergrundfarben, isoliert die Vordergrundfarben und wandelt sie in indizierte Farben um, indem es eine Hand voll Farben definiert, die den Vordergrundfarben nahekommen.
Noteshrink lässt sich mit pip
installieren. Es benötigt Python 2 oder 3, NumPy 1.10 oder neuer, SciPy, ImageMagick und das Imagemodul von PIL oder Pillow. Ich habe noteshrink
in einer mit pyvenv
erzeugten virtuellen Python-Umgebung mit Python 3 installiert.
Um den ganzen Prozess des Einscannens, Optimierens und Abspeicherns zu vereinfachen, habe ich ein kleines Makefile geschrieben, das Folgendes tut:
- Es scannt die Notiz mit Hilfe von scanimage und erzeugt dabei eine TIFF-Datei, die später gelöscht wird
- Es ruft noteshrink auf.
- Es ruft ein rename Skript auf, das nach dem Dateinamen fragt, unter dem das Endergebnis abgespeichert werden soll.
- Es löscht alle temporären Dateien, die nicht mehr gebraucht werden.
all: scan shrink rename delete
scan:
scanimage --device-name='genesys:libusb:001:004' \
--mode=Color --resolution=300 --format=tiff > scan.tiff
shrink:
~/py3/bin/noteshrink scan.tiff
rename:
./rename.sh
delete:
rm page*.png scan.tiff
Den Gerätenamen (--device-name
) erhält man mit scanimage -L
. Eine Auflösung von 300dpi reicht für meine Zwecke bisher aus.
Das Rename-Skript ist extrem simpel:
#!/bin/bash
echo "Dateinamen eingeben"
read filename
mv output.pdf $filename
Das ist auch schon alles. Das Makefile und das Rename-Skript liegen beide in einem Ordner, in dem ich die Notizen speichern will. Ich muss also bloß das Papier auf den Scanner legen, in den Ordner wechseln und make
aufrufen.
$ cd Notizen
$ make
scanimage --device-name='genesys:libusb:001:004' --mode=Color --resolution=300 --format=tiff > scan.tiff
~/py3/bin/noteshrink scan.tiff
opened scan.tiff
getting palette...
applying palette...
saving page0000.png...
done
running PDF command "convert page0000.png output.pdf"...
wrote output.pdf
./rename.sh
Dateinamen eingeben
Beispiel.pdf
rm page*.png scan.tiff
Das Ergebnis
Das Ergebnis ist überzeugend. Das Bild unten zeigt ein Beispiel. Die Notiz erfolgte auf der Rückseite eines bereits bedruckten Blattes. Beim Einscannen scheint die beschriebene Rückseite durch. Noteshrink entfernt solche störenden Elemente. Linien und Kästchen eines Kollegblocks bleiben meistens erhalten. Das Repository von noteshrink enthält weitere Beispiele.