Das Hauptproblem beim Extrahieren von Tabellen aus Bildern besteht darin, dass die Tabellendaten über das gesamte Bild verstreut sein können, was das Auffinden und Extrahieren erschwert.
There is no built-in function in Python to extract tables from images but there are many libraries that you can use. One such library is pytesseract which is a wrapper for Google's Tesseract-OCR Engine.
Here is a simple example of how you can use pytesseract to extract table data from an image:
import pytesseract import cv2 # read the image image = cv2.imread("image.png") # convert the image to grayscale gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # apply thresholding to preprocess the image thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1] # perform OCR on the thresholded image result = pytesseract.image_to_string(thresh) print(result)
Dieser Code importiert die Bibliotheken pytesseract und cv2.
Als nächstes liest es das Bild ein.
Dann konvertiert es das Bild in Graustufen.
Danach wendet es Schwellenwerte an, um das Bild vorzuverarbeiten.
Abschließend führt es eine OCR auf dem Schwellwertbild durch und druckt das Ergebnis.
Arbeiten Sie mit Bildern
Es gibt einige Möglichkeiten, mit Bildern in Python zu arbeiten. Am einfachsten ist es, das Bildmodul zu verwenden, das eine Vielzahl von Methoden zum Bearbeiten von Bildern bereitstellt. Beispielsweise können Sie mit der Funktion Image() ein Bild von Grund auf neu erstellen oder mit der Funktion open() ein Bild aus einer Datei laden.
Eine andere Möglichkeit, mit Bildern in Python zu arbeiten, ist die Verwendung des PIL-Moduls (Python Imaging Library). Dieses Modul bietet eine Vielzahl von Methoden zum Bearbeiten von Bildern, einschließlich Zuschneiden und Ändern der Größe, Konvertieren zwischen verschiedenen Formaten und mehr.
Wort mit Tabellen
In Python können Sie Tabellen mit der Funktion table() erstellen. Die Funktion table() nimmt zwei Argumente entgegen: den Datentyp der Tabelle und eine Liste mit Spaltennamen. Hier ist ein Beispiel:
Tabelle ("Name", "Alter")
name Alter
John 20
Jane 25