Wie kann ich Text aus Bildern extrahieren?
Ich spreche nicht von gescannten Dateien, sondern von ganz gewöhnlichen Bildern, beispielsweise wenn Sie im Unterricht ein hochauflösendes Foto von einer Tafel machen, das schön handschriftlich beschrieben ist; oder wenn Sie eine Seite aus einem Kochbuch fotografieren und das Rezept im Textformat haben möchten.
Gibt es dafür kostenlose und offene Software?
Ich habe Tesseract ausprobiert und die Ergebnisse waren schrecklich.
Antwort1
tesseract-ocr
wäre im Vergleich zu allen anderen das Beste. Führen Sie zur Installation den folgenden Befehl aus
sudo apt-get install tesseract-ocr
Die Verwendung ist tesseract filename.jpg output.txt
, dann wird output.txt
eine Datei generiert.
Sie sollten die entsprechende Sprache auswählen. In diesem Fall müssen Sie tesseract-ocr-LANG
das Paket installieren, wobei LANG
sich die dreistelligeISO 639-2 Sprachcode. Derzeit haben Sie 123 Sprachen im 18.04-Repo.Dann benutzeZum Beispiel:
tesseract mySpanishText.jpg output -l spa
Antwort2
Der Vorgang des Extrahierens von Text aus Bildern wird genannt OCR
und Ubuntu hat eine Wiki-Seite, die sich mitOCR. Von dieser Seite:
Verfügbare OCR-Tools
Die Ubuntu Universe-Repositories enthalten die folgenden OCR-Tools:
- gocr- Eine Befehlszeilen-OCR
- Abonnieren- Spamassassin-Plugin zum Überprüfen von Bildanhängen
- libhocr0- Hebräische OCR
- Abonnieren- Programm zur optischen Zeichenerkennung
- Abonnieren- Dokumentlayoutanalyse und optisches Zeichenerkennungssystem
- Oktopus- Dokumentenanalyse und OCR-System
- Tesseract-OCR
Die Ubuntu-Multiverse-Repositorys enthalten außerdem:
- Keilschrift- mehrsprachiges OCR-System
Einige Pakete sind veraltet, aber inoffizielle neue finden Sie inAlex_P PPA(PPA-Hinzufügungscode: ppa:alex-p/notesalexp). Wenn Sie noch nie ein PPA verwendet haben, überprüfen SieSo fügen Sie Software aus einem PPA hinzu.
bearbeiten: Wie im Kommentar gezeigtClara OCRexistiert auch, ist aber bei Hardy hängen geblieben und deren Website hat das Jahr 2009 als letztes Update.
Antwort3
Antwort4
Mit tesseract-ocr
können wir extrahierenTextausBilder. Ich habe getestet gocr
, was nicht gut funktioniert hat im Vergleich zutesseract-ocr
Installation:
sudo apt-get install tesseract-ocr
Python
Programm zum Konvertieren aller Bilddateien mitpngErweiterung im aktuellen Verzeichnis zutxtDatei
#!/usr/bin/env python3.10
import os
import subprocess
def list_files(path):
files = []
for name in os.listdir(path):
if os.path.isfile(os.path.join(path, name)):
files.append(os.path.join(path, name))
return files
def convertImageToText(img_file):
#process = subprocess.Popen(['tesseract', img_file,
# ''.join(img_file.rsplit('.png', 1))])
os.system(f"tesseract {img_file} {''.join(img_file.rsplit('.png', 1))}")
def startOperation():
list_file = list_files(".")
print(list_file)
for img_file in list_file:
if img_file.lower().split(".")[-1] == "png":
convertImageToText(img_file)
startOperation()