Inhaltsverzeichnis
Texterkennung und Dokumentenbearbeitung
Dieser Beitrag beschreibt, wie eine einfache Konvertierung von Bildern in ein geeignetes Schwarz/Weiß-Format und eine anschließende Texterkennung mit Tesseract durchgeführt werden kann. Zudem wird erklärt, wie man komfortabel das Dokumentendatum aus einem PDF-Dokument ausliest.
Bildkonvertierung
Eine einfache Konvertierung eines Fotos in ein Schwarz/Weiß-Bild kann mit dem folgenden Befehl durchgeführt werden:
convert IMG_1674837489306.jpg -auto-orient -colorspace gray -resize 2000 -threshold 60% +dither -colors 2 -type bilevel IMG_1674837489306-sw.jpg
Erklärung:
-auto-orient: Stellt sicher, dass das Bild korrekt ausgerichtet ist.
-colorspace gray: Wandelt das Bild in Graustufen um.
-resize 2000: Ändert die Größe des Bildes auf eine maximale Breite von 2000 Pixeln.
-threshold 60%: Setzt einen Schwellenwert von 60% für die Umwandlung in Schwarz/Weiß.
+dither und -colors 2 -type bilevel: Sorgt dafür, dass das Bild nur zwei Farben (Schwarz und Weiß) verwendet.
Texterkennung mit Tesseract
Ein Schwarz/Weiß-Bild ist für die Texterkennung wesentlich effektiver. Der Schwellenwert im threshold-Parameter kann angepasst werden, falls der Schwarzwert nicht optimal ist.
Provisorischer Test der Texterkennung:
tesseract IMG_1724050088313-sw.jpg ausgabe cat ausgabe
Falls eine PDF-Version benötigt wird, kann das Bild mit folgendem Befehl in ein PDF umgewandelt werden:
convert IMG_1724050088313-sw.jpg IMG_1724050088313-sw.pdf
Dokumentendatum aus PDF auslesen
Das folgende Python-Skript liest komfortabel das Dokumentendatum aus einem PDF-Dokument aus. Es wird davon ausgegangen, dass das Datum auf der oberen Hälfte eines DIN-A4-Dokuments steht. Die Suche erfolgt nach zwei Mustern:
TAG.MONAT.JAHR (z. B. 01.01.2025)
TAG MONAT JAHR (z. B. 01. Januar 2025)
Python-Skript: auslesen.py
import sys
from pdf2image import convert_from_path
import pytesseract
import re
# Laden des ersten Bildes aus dem PDF
def main(pdf_path):
image = convert_from_path(pdf_path)[0]
breit, hoch = image.size
# Definition der Suchmuster
sdatum = re.compile(r"\d{1,2}\.\d{1,2}\.\d{2,4}")
mdatum = re.compile(r"\d{1,2}\. \D[a-zA-Z]+\ \d{2,4}")
# Beschneiden des Bildes auf die obere Hälfte
beleg = image.crop((0, 0, breit, int(hoch / 2)))
# Texterkennung
text = pytesseract.image_to_string(beleg)
# Datumsuche
datum = sdatum.findall(text)
datum2 = mdatum.findall(text)
# Ausgabe
print(text)
print("------------------------")
for ausdruck in datum2:
print(ausdruck)
for ausdruck in datum:
print(ausdruck)
print("------------------------")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python auslesen.py <PDF-Datei>")
else:
main(sys.argv[1])
Fazit
Mit diesen Befehlen und dem Python-Skript lassen sich Bilder effektiv für die Texterkennung aufbereiten, Texte auslesen und spezifische Informationen wie Dokumentendaten automatisiert extrahieren.
