2015-01-02 8 views
5

Ich versuche ein System zu implementieren, um Wörter eines handschriftlichen Textes in einem Bild zu identifizieren/zu erkennen. Ich muss die Wörter im Text erkennen. Aber ich halte es für unmöglich, da die Bilder selbst für mich nicht lesbar sind. Für jetzt, was ich brauche, ist, die Wörter zu trennen. Ich muss nur herausfinden, dass es ein Wort gibt. Wenn der Benutzer einen Bereich auswählt, sollte das System nur ein einzelnes Wort in dem Bild auswählen.Handgeschriebene Texterkennung mit Javascript

Meine Frage ist: Ist es mit JavaScript machbar?

Hier ist ein Beispielbild. enter image description here

+2

Im Gegensatz Forum-Sites, wir verwenden Sie nicht "Danke" oder "jede Hilfe dankbar", oder Unterschriften auf [so]. Siehe "[Sollen 'Hallo', 'Danke', 'Slogans' und 'Anrede' aus Posts entfernt werden?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - Removed-from-posts. BTW, es ist "Danke im Voraus", nicht "Danke im fortgeschrittenen". –

+2

Wenn Sie Frage ist "Ist es mit JavaScript möglich?", dann ist die Antwort ja! Es ist definitiv möglich , in jeder turing vollständigen Sprache.Wenn Sie Frage ist, wie es gut geht, das ist wirklich eine breite Frage ... –

+1

Nützliche Google-Abfrage wäre "Javascript optische Zeichenerkennung." [OCR] (http: // en. wikipedia.org/wiki/Optical_character_recognition) ist keine einfache Sache (normalerweise kommerzielle Software) und Sie werden möglicherweise kein Open-Source-Paket finden, das bereit ist zu konsumieren.Wenn Sie die OCR-Server-Seite ausführen, werden Sie bessere Chancen haben, da Sie nicht eingeschränkt werden von der JavaScript-Plattform – xmojmr

Antwort

5

JS + Canvas und eine grundlegende Implementierung der Viola-JonesGesichtserkennungstechnik.
Mit so einem Manuskript? Ich denke, Sie werden wirklich schlechte Ergebnisse bekommen.

Sie müssen zuerst die globale horizontale Neigung erkennen. (Durch die sich die Neigung können Sie gleichzeitig abrufen, die Zeilenhöhe.)
Erstellen Sie eine 100% horizontale Gitter Läufer wie:

0000000000... 
1111111111... 
0000000000... 

wo 0 checkes für Licht und 1 für dunkle Bereiche . Lass es über deine Bildauswahldaten von oben nach unten und zu allen Neigungen laufen (d. H. + -15 Grad max).
Eine positive Übereinstimmung ist, wenn Ihr Raster (Streifen) die Schwellenwertkontrastdichte zurückgibt, die mit seinem Raster übereinstimmt. Wenn der Läufer keine Übereinstimmung zurückgibt, erhöhen Sie die Größe und lassen Sie sie erneut laufen.
Sie müssen Fehler berücksichtigen, so dass Sie jede mögliche positive Übereinstimmung speichern müssen. Wenn Sie mit allen Größen und Neigungen fertig sind, wählen Sie einfach die mit mehr Übereinstimmungen.

enter image description here

Jetzt haben Sie die allgemeine horizontale Neigung und die Zeilenhöhe.

Jetzt müssen Sie die vertikale Buchstabenneigung definieren. Zur gleichen Zeit können Sie die Leerzeichen abrufen.
Gleiche Technik. Sie lassen einen vertikalen Runner Zeile für Zeile (Sie kennen die Zeilenhöhe)

0101010 
0101010 
0101010 
0101010 
0101010 

beginnend von 0 links nach rechts. Keine Übereinstimmung? Grad ändern. Lass es nochmal laufen.
Rufen Sie den Lauf ab, der mehr Übereinstimmungen gesammelt hat. Du hast die Buchstabenneigung.
lassen Sie es über die gleiche Zeile Text laufen und sammeln Sie alle Informationen über die Highlight-Lücken zwischen den dunklen Bereichen.

enter image description here

+1

Vielen Dank für Ihre Unterstützung.Ich bin nicht schlau genug, um Ihre Position zu folgen t in diesem Moment. Ich werde darüber nachforschen. Aber vielen Dank noch einmal für Ihre Idee. –