Benutzer-Werkzeuge

Webseiten-Werkzeuge


paperless:pdf_konvertierung_und_ocr

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.

paperless/pdf_konvertierung_und_ocr.txt · Zuletzt geändert: von 127.0.0.1