![]() |
Simples OCR Programm erstellen (Texterkennung)
Hallo,
ich möchte mir ein simples Texterkennungsprogramm selbst bauen, vielmehr sollen lediglich einzelne Buchstaben oder Zahlen erkannt werden. Bisher habe ich mein Programm schon soweit dazu bewegen können ein Bild entsprechend zu konvertieren (Graustufen) und relevante Bereiche (Buchstaben) auszuschneiden. Jetzt fehlt mir allerdings ein vernünftiger Ansatz um die OCR Implementation umzusetzen. Meine Überlegung war nun eine auf Textdateien basierende Datenbank anzulegen die ich dann über TStringList laden und auswerten kann. Wobei jede Textdatei für einen Buchstaben oder aber eine Zahl steht. Jede Textdatei enthält 60 Zeilen mit jeweils 60 Zeichen (Nullen und Einsen) um eine Grafik (Buchstaben) von 60x60 Pixeln darzustellen. Um eine Texterkennung durchzuführen würde ich die vorhandenen Stringlisten aus der Datenbank mit der Stringliste der Grafik vergleichen und die Anzahl der "Treffer" ermitteln. Vergleichen würde ich hier allerdings die Datenbank mit der Grafik und nicht umgekehrt. Was haltet Ihr davon, würdet Ihre eine anderen Ansatz wählen? Mfg |
Re: Simples OCR Programm erstellen (Texterkennung)
Ich würde vermutlich einen anderen Ansatz wählen, da dieser Binäre Vergleich zu unflexibel ist.
Wenn z.B. der Buchstabe kursiv ist, hast du auf einmal viel weniger Treffer, oder wenn er (z.B. wegen dieser Serifen) leicht versetzt ist ... Ich würde versuchen, den Buchstaben in (Teilkreis-)Linien aufzuteilen, also Linie, Halbkreis, Kreis ... und dann über die Ähnlichkeit dieser Merkmale gehen. Wenn der Buchstabe plötzlich Kursiv ist, hast du "nur" eine Änderung der Neigung der Linien, und wenn er versetzt ist, macht das gar nichts. So würdest du ein R als eine senkrechte linie, einen Halbkreis und eine schräge Linie speichern. Das bringt neben dem Speicherplatzvorteil auch den Vorteil, dass die Buchstaben verschieden groß sein können. Die Hauptarbeit wird hier auf jeden Fall, einen Algo zu entwickeln, der aus einem Bild diese Linien folgert. Falls du deinen Ansatz nehmen möchtest, würde ich dir auf jeden Fall Raten, nicht die Nullen und Einsen zu speichern, sondern jedes Bit einzeln, dann brauchst du nur noch ein Achtel an Speicherplatz ... |
Re: Simples OCR Programm erstellen (Texterkennung)
hmm das ist ein interessanter gedanke, vielleicht
sollte man das ganze noch weiter abstrahieren und nur nach anfangs/endpunkten der Linien suchen und deren Verteilung in einem Gitternetz analysieren |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz