Shapes vergleichen? Zeichen erkennen?

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Hallo,

bastle gerade an einem Captcha-Decoder. Nur so aus jux und dollerei und weil man halt auch was dabei lernt... jetzt werden gleich die ersten schreien "Was für'n Bot soll'n das werden" oder "Du hast eindeutig zu viel Zeit". Nun, dem ist nicht so. Aber zurück zum eigentlichen Thema:

Hab mir das hier als Muster genommen:



Hab es ohne große schwierigkeiten geschafft mit nur 78ms CPU-Zeitaufwand folgendes draus zu machen:



Damit hab ich schonmal die Umrisse der Zeichen.

Nächster Ansatz wäre jetzt "Schablonen" der möglichen Zeichen (ohne "Löcher" und "Störungen") zu erstellen ( A-Z + 0-9 = 36Stück), und von jeder Schablone ein Shape (Generalpath, irgendwas in der Richtung) zu generieren und dann gegen das eigentliche Bild zu prüfen. Sprich: Schauen ob das Shape der Schablone im Shape des Bildes (die rote Umrandung) enthalten ist.

Nur steh ich da nun n bisschen aufm Schlauch. Die Buchstaben im Captcha sind je etwas gedreht. D.h. meine Schablone wird da nicht so ohne weiteres passen. Hinzu kommt, dass die Zeichen im Bild etwas "ramponiert" sind und hier und da Lücken aufweisen. Selbst wenn ich das mit dem gedrehten kompensiert bekomme, hab ich immer noch das Problem dass die Schablonen nicht Deckungsgleich wären und somit nur zu 9x% passen.

Kann mich jemand auf nen Algo oder dergleichen stupsen mit dem ich in meiner Sache weiter komme?

Oder bin ich shcon total auf'm Holzweg?

Ja, ich weiß, das vorhaben ist nicht gerade ohne und man braucht einiges an wissen. Aber schließlich muss man sich das ja auch praktisch aneignen. Von alleine kommt's nicht geflogen.

Wäre trotzdem für Hinweise und Tipps dankbar.

Gruß
Alex
 

Capasso

Bekanntes Mitglied
Hi,

wo ich das Bild mit den Buchstaben sehe erinnert mich das an meine Vorlesung "Wissensbasierte System".

Hier mal eine Seite aus dem Script:

capasso-albums-allgemein-picture26-wbs-nn.png


Ging um Neurola Netze.

Man stellt jeden Buchstaben als 6 x 7 Bitmusterdar und vergleicht dann mit der 6x7 Bitmusterschablone.

Wie genau und wie gut das geht weiß ich nicht, da wir das nie praktisch gemacht haben.

Vielleicht hilft es dir.
 
Zuletzt bearbeitet:
T

tuxedo

Gast
Super, das geht absolut in die Richtung. Ist scheinbar genau das was ich brauche. Allerdings ist das ein wenig schwer zu lesen bei der minimalen Auflösung ... :autsch:

Gruß
Alex
 
T

tuxedo

Gast
Das Script hat mich etwas weiter gebracht. Danke hierfür.

Nächste Schritte sind nun:

* Segmentieren/Trennen der Zeichen aus dem bereinigten Captcha. Danach entsprechendes "cropping" damit kein unnötiger "weißer Rand" mehr da ist.
* Im jeweils segmentierten Zeichen die Kanten erkennen. Daraus wird sich hoffentlich ein Rechteck ergeben anhand dessen ich erkennen kann um wieviel Grad das Zeichen gedreht werden muss bis es wieder gerade steht
* Die gedrehten Zeichen in ein Raster stecken
* "Zeichenschablonen", also die möglichen Zeichen in der verwendeten Schriftart ebenfalls rastern.
* Beide Raster, welche dann aus s/w bzw. 0/1 bestehen vergleichen: Sprich: Den "Wert" der Rasterschablone mit dem Wert des gerasterten Zeichens vergleichen. Siehe dazu auch folgender Screenshot zur verdeutlichung:



Dann muss ich nur noch schauen welchen Wert das gerasterte Zeichen hat, und welcher Schablonenwert am besten dazu passt.

Evtl. muss ich an der Werteberechnung des Rasters etwas Feilen weil das noch recht "ungenau" ist. Bin mir noch nicht sicher wo gering die Wahrscheinlichkeit ist, dass man mit unterschiedlichen Mustern gleiche/ähnliche Werte erreicht.

Wenn noch jemand Tipps oder Ideen hat: Her damit :)

Gruß
Alex
 

Landei

Top Contributor
Einfache Mustererkennung geht mit einem Hopfield-Netz, dass sich ohne großen Aufwand implementieren läßt. Keine Ahnung, ob das hier ausreicht...
 
T

tuxedo

Gast
Danke für den Hinweis. Ich werd mal schauen ob ich damit was anfangen kann.

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Shapes als Buttons nutzen, schlechter Programmierstyle? Allgemeine Java-Themen 1
S Mehrere Shapes "malen" Allgemeine Java-Themen 3
M Shapes mit abgerundeten Ecken generieren Allgemeine Java-Themen 2
Ü Arrays vergleichen Allgemeine Java-Themen 59
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
D Zwei Listen vergleichen Allgemeine Java-Themen 7
F 2 JsonArray vergleichen, geht es auch einfacher ? Allgemeine Java-Themen 3
N String vergleichen. Allgemeine Java-Themen 27
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
R Optimierung beim Vergleichen von 2 Bildern Allgemeine Java-Themen 23
CptK Input/Output Buttonwerte vergleichen Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
Meeresgott Best Practice Strings auf Inhalte vergleichen Allgemeine Java-Themen 1
N DNA Strings vergleichen Allgemeine Java-Themen 1
C Input/Output Textdateien vergleichen Allgemeine Java-Themen 3
M Dateien nach kopieren vergleichen Allgemeine Java-Themen 9
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
K Eingabe mit Char vergleichen klappt nicht! Allgemeine Java-Themen 2
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
W Variablen Dates vergleichen Allgemeine Java-Themen 7
A Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ? Allgemeine Java-Themen 7
J Farben mit comparing vergleichen Allgemeine Java-Themen 3
Dechasa Java 8 - Datum vergleichen Allgemeine Java-Themen 5
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
H Strings vergleichen Allgemeine Java-Themen 9
Y inhalte aus 2 unterschiedlichen Arrays miteinander vergleichen Allgemeine Java-Themen 12
D Pattern mit Pattern vergleichen Allgemeine Java-Themen 3
2 Joda Time - Localtime mit anderer Zeit vergleichen? Allgemeine Java-Themen 1
A Kann String nicht vergleichen (Android) Allgemeine Java-Themen 4
F Zwei LinkedHashMaps iterieren und vergleichen Allgemeine Java-Themen 2
D Variablen java.io.File zum vergleichen abspeichern Allgemeine Java-Themen 1
7 6 int variablen vergleichen Allgemeine Java-Themen 34
E Lesen von mehrere Csv-Datei und ihre Inhalte vergleichen Allgemeine Java-Themen 3
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
OnDemand Spalten vergleichen Java Allgemeine Java-Themen 25
C Rechenzeit verschiedener Algorithmen vergleichen Allgemeine Java-Themen 4
OnDemand Dateien einlesen und vergleichen Allgemeine Java-Themen 1
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
S String vergleichen Allgemeine Java-Themen 1
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
N Variablen Positionen vergleichen ??? Allgemeine Java-Themen 2
A Bilder vergleichen auf gleichheit oder ähnlichkeit Allgemeine Java-Themen 8
J XML Dateien vergleichen Allgemeine Java-Themen 9
X Collections Hashmaps vergleichen Allgemeine Java-Themen 23
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
S Zwei Comparable (compareTo) vergleichen Allgemeine Java-Themen 6
A PDF Content vergleichen Allgemeine Java-Themen 3
M Datentypen Referenzen oder seperate IDs vergleichen? Allgemeine Java-Themen 6
D Strings vergleichen; Komma ignorieren Allgemeine Java-Themen 3
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
S Reports vergleichen Allgemeine Java-Themen 8
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13
T Wörter Vergleichen Allgemeine Java-Themen 3
T Uhrzeiten vergleichen Allgemeine Java-Themen 4
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
S Strings vergleichen Allgemeine Java-Themen 11
9 Dateinamen erfassen und vergleichen Allgemeine Java-Themen 6
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
D String mit Wörterbuch vergleichen Allgemeine Java-Themen 12
I Input/Output Zeichenkette eingeben und vergleichen Allgemeine Java-Themen 2
Landei Hilfsklasse zum Vergleichen Allgemeine Java-Themen 5
S Datum vergleichen - ohne Hilfsmittel Allgemeine Java-Themen 8
1 zwei Strings vergleichen Allgemeine Java-Themen 16
F Vergleichen von Datumswerten Allgemeine Java-Themen 3
S Ergebnis von Cursor c1 mit Cursor c2 vergleichen Allgemeine Java-Themen 3
G Zwei bytes vergleichen Allgemeine Java-Themen 2
S Fixe Zahlen vergleichen Allgemeine Java-Themen 4
M Zeitangaben vergleichen Allgemeine Java-Themen 2
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
1 String mit contains vergleichen (ignore case) Allgemeine Java-Themen 2
Developer_X Problem mit String vergleichen Allgemeine Java-Themen 3
Z zwei Daten vergleichen Allgemeine Java-Themen 4
nrg Leere Objektreferenz mit != null vergleichen Allgemeine Java-Themen 4
ARadauer PDF Vergleichen Allgemeine Java-Themen 16
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
O Probleme beim vergleichen von 2 Datumsangaben Allgemeine Java-Themen 2
N 2 files auf gleichheit vergleichen Allgemeine Java-Themen 5
V Datum vergleichen Allgemeine Java-Themen 7
S Datei auf Server mit lokaler Datei vergleichen Allgemeine Java-Themen 4
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
G Datum vergleichen Allgemeine Java-Themen 5
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
J Inhalt von HashMap vergleichen Allgemeine Java-Themen 3
S Anfänger: 2 Objekte vergleichen? Allgemeine Java-Themen 8
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
K zipdatei mit txtdatei vergleichen Allgemeine Java-Themen 9
S 2 URIs vergleichen Allgemeine Java-Themen 4
C Viele Informationen aus zwei Collections vergleichen Allgemeine Java-Themen 2
QDog beliebige Objekte vergleichen Allgemeine Java-Themen 2
G schnell Strings vergleichen Allgemeine Java-Themen 4
V Zwei ArrayList(s) vergleichen Allgemeine Java-Themen 6
D Vergleichen von Datensätzen Allgemeine Java-Themen 2
M Name von Wochentagen vergleichen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben