Texterkennung zum Einlesen von Rasterdiagrammen
Häufig wird eine Visualisierung eines Plots als gerastertes Bild gespeichert. Die Hauptquelle dieser Diagramme sind Scanner oder alte Dokumente. Um eine höher aufgelöste Darstellung zu rekonstruieren, sollte man die gerasterte Darstellung in Vektorgrafiken umwandeln. Dieses Beispiel zeigt, wie man mit Hilfe der Bildverarbeitung und Texterkennung Plotskelette mit Achsen, Achsenbeschriftungen und den Wertebereichen in horizontaler und vertikaler Richtung extrahiert.
Nehmen Sie ein Bild her, das ein Diagramm enthält.
Erkennen Sie die Trennstriche und Beschriftungen sowie deren Positionen und speichern Sie diese in einer Assoziation.
Definieren Sie nun Nützlichkeitsfunktionen, um die in der Nähe erkannten Beschriftungen auszuwählen und sie anhand ihrer x- und y-Koordinaten zu gruppieren.
Dadurch können wir die erkannten Elemente nach vertikalen und horizontalen Beschriftungen und Trennstrichen gruppieren.
Finden Sie heraus, wo sich die Darstellung im Bild befindet, indem Sie ein Rechteck mit den höchsten Koordinaten der vertikalen und horizontalen Achsen erstellen.
Markieren Sie die Grafikelemente auf dem Bild.
Nun schauen wir uns das Finden und Parsen der Trennstriche an.
Wir verwenden ein kleines Dienstprogramm, um als Trennstriche erkannte Zeichenketten in Zahlen zu konvertieren und zu sortieren.
Lokalisieren, erkennen und markieren Sie Achsenbeschriftungen.
Sie sind nun bereit, das Plotgerüst wiederherzustellen.
Auf dem Originalbild ist der Trennstrich für 200 etwas vom Nullpunkt auf der horizontalen Achse verschoben. Wenn Sie die genaue Verschiebung ermitteln, können Sie sie auf dem Plotgerüst replizieren.
Zuerst müssen Sie herausfinden, wie weit die horizontalen Trennstriche voneinander entfernt sind.
Wenn Sie den Mittelwert der Entfernungen berechnen, erhalten Sie das durchschnittliche Maß der Platzierung der Striche.
Um das Maß genau zu berechnen, müssen Sie die durchschnittliche Differenz zwischen den Werten ermitteln, die die horizontalen Striche darstellen.
Das Letzte, was Sie herausfinden müssen, ist der Abstand des ersten horizontalen Strichs vom Schnittpunkt der Achsen in Pixeln.
Schließlich ermitteln Sie so die gewünschte Verschiebung.
Jetzt hat die Darstellung den 200-Strich vom Nullpunkt auf der horizontalen Achse verschoben, wie im Originalbild.
Wenn Sie all dies in einer Funktion zusammenfassen, können Sie versuchen, das Gerüst eines anderen Plots zu erkennen.