Naja, wenn man von schwarzen Markierungen auf hellem Grund ausgeht, könnte man auch beim HSV-Farbraum nur den Kanal für die Helligkeit nutzen.


Ich habe inzwischen jedenfalls mal ein bischen mit Matlab an einem simulierten Bild herumexperimentiert, und relativ vielversprechende Ergebnisse erhalten.

Das Testbild war ein Würfel mit je 3x3 Markierungen (deren Form ich willkürlich gewählt habe) auf jeder Seite. Alle Markierungen sind irgendwie verdreht, und zusätzlich habe ich auf einer Seite die Größe der Markierungen variiert.

Bild hier  

Wie man sieht gibt es auf dem Testbild deutliche Helligkeitsschwankungen. Ich habe versucht sie auszugleichen indem ich das Originalbild durch eine extrem unscharfe Version (64x64er Weichzeichner) geteilt habe. Das resultierende Bild sah zwar nicht mehr besonders schön aus, ließ sich aber problemlos binarisieren.

Zur weiteren Verarbeitung des Bildes hat Matlab zwei verdammt praktische Funktionen "bwlabel" und "regionprops", die einem eine Menge Arbeit ersparen.

Mit bwlabel werden zusammenhängende Gebiete im Binärbild gesucht und durchnummeriert. Die Funktion regionprops kann dann eine ganze Menge Informationen zu diesen Gebieten ermitteln, wie z.B. die Position des Schwerpunkts (im oberen Bild rot markiert), und die boundingbox (also das kleinste das Gebiet umschließende Rechteck).

Naja, und wenn man die von regionprops gelieferten Daten halbwegs sinnvoll einsetzt, schaut das Ergebnis so aus:

Bild hier  

32 Bilderchen gleicher Größe, wobei jedes eines der gefundenen Gebiete enthält.

Jetzt stellt sich nurnoch die Frage wie man von hier aus weitermachen kann, denn die Bilder haben jetzt zwar alle die gleiche Größe, aber es muss noch für jedes Bild festgestellt werden ob es eine der gesuchten Markierungen ist oder nicht. (außerdem muss noch die Rotation bestimmt werden)


Gruß,
Felix