Verfasst am: 15.11.2012, 23:03
Titel: Ecken in Test Chart detektieren
Hallo,
ich arbeite momentan an einem Uni Projekt, bei dem die Farbwiedergabe einer Kamera gemessen werden soll. Dazu wird ein TE188 Test Chart aufgenommen auf dem verschiedene Referenzfarben abgebildet sind.
Dieses Bild soll dann in einem Matlab Programm analysiert werden. Dabei will ich in jedem Rechteck die Tonwerte ermitteln. Damit ich sicher sein kann, dass ich innerhalb eines Farbfeldes messe, muss ich die Position der Felder kennen. Dazu würde ich gerne ein Programm schreiben, dass automatisch die äußeren Ecken des gesamten Test Charts erkennt (Im Bild rot markiert).
Habt Ihr einen Ansatz für mich wie ich dabei vorgehen könnte? Das Bild ist immer das gleiche, unterscheidet sich nur durch geringfügig andere Lage und Rauschen.
Wäre mir eine riesen Hilfe, da ich momentan gar nicht weiß wie ich anfangen soll.
*edit: Eine Idee von mir für einen Anfang wäre, erst ein Binärbild zu erstellen und dann mit opening und closing ein einziges großes weißes Rechteck zu erzeugen. Dann bräuchte ich nur noch von diesem die Ecken zu erkennen.
dein Weg ist nach ein paar Versuchen mit der Tafel richtig. Ich habe zunächst alle Farbfelder auf Weiß gesetzt. Mit "imerode" bleiben dann nur die weißen Felder übrig. Es gibt aber ein Problem mit dem unteren schwarzen Rechteck, dass dabei mit entfernt wird. Dafür muss es noch eine Lösung geben.
Mit Ausnahme dieses Rechtecks bekommt man mit den Funktionen: strel, imdilate, imfill und imclearborder eine rechteckige, weiße Figur. Mit dem Befehl "corner" werden die Koordinaten der Eckpunkte ausgegeben.
vielen dank für deine Hilfe. Die corner Funktion war Gold wert. Hab es nun hinbekommen. Ich hab gemerkt, dass das Bild was ich hier hochgeladen habe schon geclippt war. Im echten Bild ist das schwarz in der Ecke kein reines Schwarz. Daher konnte ich den threshold so wählen, dass ich alle Felder weiß bekommen hab. Mit closing und opening hab ich dann das große Rechteck erstellt, an dem dann die Ecken Detektion kein Problem war.
Hier noch der Code:
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.