AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Simples OCR Programm erstellen (Texterkennung)
Thema durchsuchen
Ansicht
Themen-Optionen

Simples OCR Programm erstellen (Texterkennung)

Ein Thema von endeffects · begonnen am 24. Apr 2005 · letzter Beitrag vom 24. Apr 2005
Antwort Antwort
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#1

Simples OCR Programm erstellen (Texterkennung)

  Alt 24. Apr 2005, 17:58
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Simples OCR Programm erstellen (Texterkennung)

  Alt 24. Apr 2005, 18:13
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 ...
  Mit Zitat antworten Zitat
endeffects

Registriert seit: 27. Jun 2004
450 Beiträge
 
#3

Re: Simples OCR Programm erstellen (Texterkennung)

  Alt 24. Apr 2005, 18:41
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz