ubuntuusers.de

unpaper

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Wiki/Icons/terminal.png unpaper 🇬🇧 ist ein mächtiges Kommandozeilenprogramm zur Nachbearbeitung von fotokopierten/gescannten Bild- und Textvorlagen. Es wurde für die automatische Stapelverarbeitung von großen Datenmengen konzipiert (z.B. E-Books). Hauptziel der Entwicklung war es, für den Bildschirm besser lesbare PDF-Dokumente erstellen zu können, unpaper kann aber z.B. zur Vorbereitung von Texterkennung, Digitalisieren, Konservieren und Archivieren von gescannten Vorlagen verwendet werden.

Installation

unpaper ist in den Paketquellen vorhanden, folgende Pakete

  • unpaper (universe)

  • libtiff-tools (universe, optional)

  • netpbm (universe, optional, um Konvertierungen der Ausgabedateien durchzuführen (siehe Beispiel))

Paketliste zum Kopieren:

sudo apt-get install unpaper libtiff-tools netpbm 

Oder mit apturl installieren, Link: apt://unpaper,libtiff-tools,netpbm

müssen installiert werden[1].

Manuelle Installation

Das Programm wurde lange nicht weiterentwickelt und wird vom ursprünglichen Entwickler nicht weiter betreut. Aufgelaufene Bugs werden aber in einem unpaper-Fork 🇬🇧 aufgegriffen und bearbeitet, dort existiert eine weiterentwickelte Version 6.1 (November 2015). Das Quellcode-Archiv kann von dort heruntergeladen, entpackt[2] und standardmäßig kompiliert/installiert werden[3], dazu wird allerdings eine aktuelle libav-Version nötig, die man sich aus dem Quellcode erstellen muss (getestet mit Version 6.0 mit libav 11 🇬🇧). Version 6.1 ist ab Ubuntu 16.04 in den Paketquellen enthalten.

Benutzung

unpaper verarbeitet pbm, pgm und ppm-Formate aus der netbm-Familie 🇬🇧. Die Formate werden auch als Ausgabeformat verwendet; .ppm ist das Format, mit dem z.B. die Scanwerkzeuge scanimage 🇬🇧 (Teil von SANE) und scanadf 🇬🇧 arbeiten, auch XSane verwendet "intern" dieses Format. Ab Version 0.6 können auch .png und etliche .tiff-Varianten direkt verarbeitet werden.

Mit unpaper können eine Vielzahl von Verbesserungen vorgenommen werden, mit denen auch aus sehr dürftigen Vorlagen gute Resultate erzielt werden können. Der typische Ablauf stellt sich in folgenden Schritten dar:

Verarbeitungsschritte
Aktion Kurzbeschreibung ggf. Deaktivierung, gefolgt von den Seitenangaben
Laden der Vorlagen Angabe aller zu bearbeitenden Vorlagen
Drehen, Spiegeln etc gleiche Ausrichtung der Vorlagen kein Standard
Platzierung auf dem Blatt Blattgröße wird automatisch anhand der Bildgrößen erstellt, wenn nicht anders festgelegt --no-mask-center
Flecken-, Rauschfilter entfernt "Dreck" und unerwünschte Pixel aus der Vorlage --no-noisefilter, --no-blurfilter
Schwarz-, Graufilter entfernt z.B. schwarze Randbalken und Hintergrundgrau --no-blackfilter, --no-grayfilter
Erkennung der Masken Legt den zu verwendeten Ausschnitt aufgrund der angegebenen Markierung fest, mehrere Auschnitte sind möglich --no-mask-scan
Geradeziehen Richtet Ausschnitte parallel zu den Blattkanten aus --no-deskew
Neue Maskierung Neuausrichtung zur Präzisierung der gewählten Ausschnitte nach dem Geradeziehen --no-scan-mask
Zentrieren der Masken Ausschnitte werden mittig gestellt --no-mask-center
Randerkennung Randeinstellungen werden ausgelesen --no-border
Ausrichten des Randes Anpassen der Ränder --no-border-align
Ausgabe Speichern der Ergebnisse Standard: Eingabeformat = Ausgabeformat, bestehende Dateinamen werden nicht überschrieben
ggf. weitere Bearbeitungsschritte z.B. weitere Maskierungen, Bildverbesserungen, Kompression etc. vorm Speichern ausführen

Dabei lassen sich einzelne Schritte natürlich auch überspringen; sie können auch nur für bestimmte Seiten weggelassen/verwendet werden (so ist z.B. beim Schwarz/Graufilter Vorsicht geboten, wenn in einzelnen Vorlagen Grafiken/Fotos oder z.B. Balkendiagramme vorhanden sind). Mit unpaper können sowohl mehrere Seiten (einzelne Bild-Dateien) auf ein "Blatt" platziert werden, als auch doppelseitige Bild-Dateien (zweiseitige Scans) auf einzelne "Blätter" aufgeteilt werden.

Die einzelnen Schritte sind über eine Vielzahl von Optionen beeinflussbar, die komplette Dokumentation ist bei installiertem Programm über /usr/share/doc/unpaper/doc/index.html aufrufbar; die Optionen werden auch in der Manpage beschrieben.

Allgemeine Syntax

Der Aufruf erfolgt im Terminal[4] nach folgendem Muster:

unpaper [options] input-file(s) output-file(s) 

Der Aufruf kann dabei eine Variable zur Verwendung eines Seitenzählers für mehrseitige Projekte beinhalten, der mit "%" beginnt; also z.B. document%03d.ppm, um alle Vorlagen mit einer dreistelligen Zählung (document001.ppm, document002.ppm document003.ppm) der Reihe nach zu verarbeiten.

Um die Anwendung für bestimmte Optionen auf bestimmte Seiten zu verhindern, wird folgende Syntax verwendet

unpaper (...andere Optionen...) --no-greyfilter 5,23,25-31,48 ( weitere Optionen...) 

Hier würde die Verwendung des Graufilters für die Seiten 5, 23, und 25 bis einschließlich 31 und 48 verhindert; auf alle anderen Seiten würden der Filter angewendet werden.

Es empfiehlt sich, vor Gesamtanwendung die Ergebnisse für einzelne Seiten zu überprüfen und ggf. anzupassen, insbesondere die Fleck- und Rauschfilter-Einstellungen müssen bei niedrigeren Auflösungen (200 dpi und kleiner) vermutlich angepasst werden.

Die Einstellungsmöglichkeiten sind sehr komplex, und können hier nicht in allen Einzelheiten erläutert werden. Als Anschauung das in der Dokumentation angegebene Beispiel einer "Komplettverarbeitung" mit anschließendem Erstellen eines PDF-Dokuments.

Beispiel

Ein idealtypischer Ablauf eines Bearbeitungsprozesses vom Scan bis zum PDF-Dokument könnte so aussehen:

Mit einem Scannner mit automatischem Einzug werden die Vorlagen als .pgm-Dateien gescannt:

scanadf [...scanner-spezifische Options...] -o scan%03d.pgm 

Natürlich kann auch ein normaler Scanner mit anderer Scansoftware verwendet werden; die Ausgabedateien müssen aber nach dem Muster scan001.pgm, scan002.pgm scan003.pgm etc. durchnummeriert sein.

Es erfolgt die Anwendung von unpaper mit Durchführung aller automatischen Korrekturen für alle Seiten, bis auf die Titelseite. Außerdem werden die automatische Erkennung der Masken, sowie des Geradeziehens und Zentrieren der Ausschnitte für die Seiten 100-110 und die Seite 200 ausgesetzt:

unpaper -v --layout double --pre-rotate -90 --no-processing 1 --no-mask-scan 100-110,200 scan%03d.pgm unpaper%03d.pgm 

Dabei führt die Option -v ("verbose") führt zu ausführlicheren Ausgaben im Terminal; --layout double platziert jeweils zwei Seiten auf einem Blatt im Querformat --prerotate -90 dreht die Vorlagen vor allen anderen Bearbeitungsschritten um 90 Grad gegen den Uhrzeigersinn.

Alternativ wird unpaper im Folgenden so ausgeführt, dass zwei Vorlageseiten zusammen auf eine Ausgabeblatt platziert werden (dabei wird davon ausgegangen, dass die Eingabe-Dateien jeweils aus einer einzelnen Seite bestehen). Alle automatischen Korrekturen werden mit den Standard-Einstellungen durchgeführt, nachdem die Ausgabegröße auf eine DinA4-Seite im Querformat festgelegt wurde (andere verwendbaren Blattgrößen lassen sich in der Dokumentation für die Option --size entnehmen).

Die erste Seite soll dabei auf der rechten Hälfte des ersten Ausgabeblattes erscheinen (wie bei Büchern allgemein üblich), daher muss zunächst an Anfang eine leere Halbseite eingefügt werden, damit die linke Hälfte des ersten Ausgabeblattes leer bleibt.

unpaper -v --layout double --size a4-landscape --input-pages 2 --insert-blank 1 scan%03d.pgm unpaper%03d.pgm 

Die erstellten .pgm-Dateien werden nun in einzelne .tiff-Dateien umgewandelt

for i in `ls unpaper*`; do pnmtotiff $i > $i.tiff; done 

und die einzelnen .tiff-Dateien zu einer mehrseitigen .tiff-Datei zusammengefasst:

tiffcp *.tiff all.tiff 

Aus dieser mehrseitigen Datei wird jetzt ein PDF-Dokument erstellt

tiff2pdf -z -o Document.pdf all.tiff 

Die Ausgangsdaten müssen natürlich nicht direkt gescannt werden, es lassen sich auf bestehende "digitale" Dokument (PDF oder andere Bild-Dateien) verwenden. So können bereits existierende Dokumente nachbearbeitet werden. Zum Konvertieren in das pgm/pbm/ppm-Format bieten sich verschiedene Werkzeuge an, (ImageMagick, GIMP u.a.)

Probleme

Die Option zum Aufsplitten von Seiten (--output-pages 2) funktioniert anscheinend nicht richtig; die Seiten werde zwar aufgeteilt, allerdings stimmen die Seitengrößen für die resultierenden Ausgaben nicht mit den eingestellten überein: es entstehen oft sehr hohe, schmale Ausgaben. Eine Lösung ist derzeit nicht bekannt.

Grafische Oberfläche

gscan2pdf und OCRFeeder verwenden unpaper intern, und bieten einige (aber längst nicht alle) Einstellungsmöglichkeiten über ihre grafischen Oberflächen.

Alternativen

Scan Tailor bietet mit einer grafischen Oberfläche bessere direkte Einfluss- und Korrekturmöglichkeiten, kann aber nicht den Umfang an Funktionen zur Bearbeitung der Vorlagen liefern. Einige Möglichkeiten zur Bearbeitung biete auch das Kommandozeilenwerkzeug ImageMagick, siehe dort Gescannte Dokumente nachbesssern.

Diese Revision wurde am 20. April 2019 22:21 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: OCR, Bildung, Scanner, Kommunikation, Grafik, Texterkennung, Büro