Extrahieren Sie Text aus einem gescannten Dokument

10

Gibt es eine Möglichkeit, den Text aus einem gescannten Dokument auszuwählen? (Ausgabe ist ein JPG) Welche Tools bietet Ubuntu für eine solche Aufgabe an? Gibt es Bibliotheken, die ich anstelle von vorgefertigten Software-Binärdateien verwenden kann, um dasselbe zu tun? Ich habe versucht, es mit Imagemagick in eine PDF-Datei zu konvertieren und dann den Text auszuwählen, was offensichtlich nicht funktioniert hat.

Dananjaya
quelle

Antworten:

9

Der Name für diese Art von Prozedur lautet OCR (Optical Character Recognition). Dieser Link bietet auch einige Möglichkeiten:

gocr - Eine Befehlszeilen-OCR
Fuzzyocr - Spamassassin Plugin zum Überprüfen von Bildanhängen
libhocr0 - Hebräische OCR
ocrad - Programm zur optischen Zeichenerkennung
ocrfeeder - Dokumentenlayoutanalyse und optisches Zeichenerkennungssystem
ocropus - Dokumentenanalyse und OCR-System
tesseract-ocr
Keilschrift - mehrsprachiges OCR-System 

Und es legt nahe, dass Tesseract ( sehr altes Tutorial ) die bessere Option für diese ist. Probieren Sie es aus.

Rinzwind
quelle
3

Vor einiger Zeit wurden die verschiedenen OCR-Pakete in Ubuntu evaluiert, festgestellt, dass Tesseract das am wenigsten schlechte (aber schlimm genug) ist, und ein Wrapper-Skript für das OCRing geschrieben (da Tesseract obskure Eingabeformate wie TIFF wünscht). Hier ist mein ~/bin/ocr:

#!/bin/sh
# usage: ocr filename.jpg
if test -z "$1"; then
    echo "usage: ocr filename.jpg [...]"
    echo "needs imagemagick and tesseract-ocr"
    echo "if tesseract fails, check if you've got tesseract-ocr-eng installed"
fi
tmpdir="$(mktemp -d)"
for fn in "$@"; do
  convert "$fn" "$tmpdir/page.tif"
  tesseract "$tmpdir/page.tif" "$tmpdir/page" 2>&1 | grep -v '^Tesseract Open Source OCR Engine$'
  cat "$tmpdir/page.txt"
  cp -i "$tmpdir/page.txt" "${fn%.jpg}.txt"
  rm "$tmpdir/page.tif" "$tmpdir/page.txt"
done
rm -r "$tmpdir"

Die Vorverarbeitung der Bilder mit GIMP (Konvertierung in Schwarzweiß mit dem Schwellenwert-Tool) schien sehr hilfreich zu sein.

Ich hoffe, die Dinge haben sich seitdem verbessert. Ich habe den Namen OCR Feeder kürzlich in Blog-Posts gesehen. Ich würde es versuchen.

Marius Gedminas
quelle
2

Das Tesseract-ocr-Paket ist eine Befehlszeile. Wenn Sie ein Programm mit einer grafischen Benutzeroberfläche wünschen, verwende ich "gscan2pdf" und Sie finden es im Ubuntu Software Center.

In gscan2pdf müssen Sie nur auf das kleine Scan-Symbol oben klicken. Ich denke, es gibt Ihnen zwei oder drei Optionen, GOCR, das nicht sehr gut ist, und Tesseract, das bewundernswert funktioniert. Wählen Sie Tesseract und klicken Sie ab diesem Zeitpunkt auf die entsprechende Registerkarte, um die Auflösungseinstellungen zu finden. Ihre beste Wette ist 300 oder sogar 600 und Tesseract wird gut abschneiden.

Schlecht gescannte, krumme oder alte Dokumente lassen sich nicht gut konvertieren. Viel Glück!

PS .. Ich lese immer wieder, dass Tesseract nur TIFF-Bilder lesen kann. Dies ist bei mir nicht der Fall. Ich kann auch JPG oder PNG importieren.

PPS ... Entschuldigung für die Änderungen! Sie können OCRFeeder auch im Softwarecenter ausprobieren. Ich muss es aber noch versuchen.

Ich Herz Ubuntu
quelle
0

Ich habe Linux Mint 17.2 x32 Cinnamon. Wahrscheinlich würden diese Schritte auch in Ubuntu 14.04 x32 funktionieren.

  1. Installieren von Tesseract OCR sudo apt-get install -y tesseract-ocr tesseract-ocr-eng Sie können weitere Sprachen hinzufügen, indem Sie zusätzliche Pakete installieren. Dieser Screenshot stammt von synaptic: Tesseract-Sprachpaketen in Synaptic

Tesseract verwenden

OPTION 1 - Öffnen Sie über die Befehlszeile das Terminal, gehen Sie in den Ordner, in dem Sie die Bilddateien (jpg, png) aufbewahren, und führen Sie den folgenden Befehl aus:

a) um alle Bilddateien in Text umzuwandeln

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" text; done

Führen Sie einen Befehl aus, um alle Textdateien zu einer zusammenzuführen cat *.txt >> all.txt

b) um alle Bilddateien in Hocr-Dateien zu konvertieren (mit Firefox öffnen)

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" hocr; done

OPTION 2 - per GUI

a) Installieren Sie gImageReader und verwenden Sie es

sudo add-apt-repository -y ppa:sandromani/gimagereader
sudo apt-get update
sudo apt-get install -y gimagereader

b) Der zweite Antrag ist VietOCR. Die aktuelle Version ist 4.0, also laden Sie VietOCR-4.0.zip herunter

Entpacken Sie Dateien und öffnen Sie VietOCR.jar mit Java:

Öffnen Sie VietOCR by Java Wenn Sie Java nicht installiert haben, können Sie es aus dem Repository installieren oder Sie können offizielles Oracle Java 8 installieren. Schritte zum Installieren von Oracle Java 8 in Ubuntu 14.04

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Ich empfehle VietOCR, da Sie damit PDF-Dateien OCR-Dateien erstellen können. Eine Massenkonvertierung ist ebenfalls möglich.

anthony0013
quelle