Schriftzeichen erkennen

Hallo,
ich möchte (vermutlich in Flash oder Java) ein Feature machen, in dem ich mit der Maus Chinesische Schriftzeichen nachzeichnen möchte.
Allerdings gestaltet sich hier Erkennung leider nicht allzu einfach.
Daher wollte ich mal um Eure Meinung bitten.
Wie würde ich das machen. Klar ich muss die Mausbewegungen verfolgen. Aber ich weiß nicht, wie ich die Bewegung zusammen bekomme.
Das an einer starren Form nachzuvollziehen halte ich gerade für schwierig. Eine „Simplifizierung“ wäre also notwendig.
Ich hatte überlegt, das Fenster in eine Art Schachbrett zu unterteilen und dann zu prüfen, welche Bereiche der Reihe nach erreicht werden. Gleichzeitig könnte ich für alle Vorgegebenen zeichen in ihren Formen auf dem Schachbrett speichern und abfragen, ob die selben Felder erreicht wurden.
Nur ne Idee. Ich hoffe, ihr könnt mir dabei weiterhelfen. Nicht so einfach leider! :frowning:

Also dann, Ideen, Vorschläge? Bitte Vortreten!

Vielen Dank,
Tobias

Hallo Tobias,

klar Schachbrett in 1:1 mit den Pixeln des Zeichens.
So machen es auch die Font-Editoren/Generatoren

In einer Reihe … mmhh … dann aber nur bei gedrückter Maustaste … manchmal muss man ja auch absetzten, weil nicht alle Linien durchgängig sind.

Für die Wertung wäre auch ein Verhältnis von Treffer:Nichttreffer möglich, da Du ja das Muster vorliegen hast.

mfg
Klaus

Hallo,

sofern ich dich richtig verstanden habe, möchtest du am Bildschirm angezeigte Schriftzeichen nachzeichnen?

Guter Einsatzbereich für die Programmiersprache Processing

http://de.wikipedia.org/wiki/Processing

Selbst bei geringen JAVA-Kenntnissen solltest du damit keine Schwierigkeiten haben.

mfg

tf

Danke für die schnellen Antworten.
Tja, ich bin mir nicht ganz sicher, ob es darauf hinauslaufen wird, dass man die Zeichen tatsächlich sieht und nachzeichnen soll. Ggf. wäre auch eine einfache „erkennung“ eines beliebigen, aber in einer Liste vorhandenen Wortes vorstellbar.
Die pixelweise Lösung fand ich nun leider nicht so günstig, da ich mir gerade die prüfung, ob man noch im „Rahmen“ ist oder nicht, schwer vorstelle.

Die Möglichkeit, den Klick/Stift abzusetzen, stelle ich mir hingegen nicht so schwierig vor. Mein Gedanke war, eben die Zeichen zu sortieren. Dann müsste halt nur nach jedem Absetzen geprüft werden, ob es Worte mit dieser Vorgabe gibt. Ähnlich einer „AUtovervollständigung“.

Aber wie gesagt, dazu müsste ich irgendein Format fingen, mit dem sich ein ungefähres Erkennen ermöglichen lässt. Daher die Schachbrett Einteilung. Vielleicht nicht genau mit 64 Feldern, aber immerhin etwas Messbares wie Strich von B1 nach B4 oder so.

Was sagt ihr?

Die pixelweise Lösung fand ich nun leider nicht so günstig,
da ich mir gerade die prüfung, ob man noch im „Rahmen“ ist
oder nicht, schwer vorstelle.

es geht nach meiner Ansicht nur auf Pixelebene.
Damit kannst Du doch im Raster gute Muster aufbauen.

einfaches, ungenaues Beispiel: ein

**T**

Linie : Treffer
1: 8
2: 3
3: 1
4: 1
5: 1
6: 1
7: 3

das Muster: 8311113

Okay, das mit den Werten versteh ich grad nicht ganz, wo die liegen, aber wenn ich Deine Idee so reifen lasse, kommt mir der Gedanke, das vorgegebene Schriftzeichen in diese Werte umzuwandeln und dann zu prüfen, wie oft die „neuen Pixel“ der Mausbewegung in das Raster eines Jeden Zeichens passen. Dann sollte man doch meinen, die Mausbewegung, die die meisten Pixel Übereinstimmung mit einem vorhandenen Schriftzeichen aufweist, sollte das erkannte Zeichen auch darstellen.
Klingt irgendwie gut. Macht man das so? :smiley:

Ich danke euch für den Input. Das hilft mir schon einmal etwas weiter, aber vielleicht gibts noch mehr Input hierzu.

Tobias

Hallo!
Das, was Du beschreibst, läuft normalerweise unter „OCR“.
Beim Umsetzen einer robusten Zeichenerkennung kommen häufig neuronale Netze zum Einsatz, die auf die entsprechenden Zeichen trainiert werden.
Ein Beispiel dafür findest Du hier: http://www.codeproject.com/KB/cs/neural_network_ocr…

Gruß,
Martin

Danke für die Antwort. Ich sehe schon, das wird nicht so wirklich leicht werden. Na gut, mal sehen, was sich daraus machen lässt.
Vielen Dank an euch alle!
Tobias