WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Ecken in Test Chart detektieren

 

duckstance
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 27.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.11.2012, 23:03     Titel: Ecken in Test Chart detektieren
  Antworten mit Zitat      
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.

Gruß duckstance

TE188.png
 Beschreibung:
TE188 Test Chart

Download
 Dateiname:  TE188.png
 Dateigröße:  13.02 KB
 Heruntergeladen:  856 mal
Private Nachricht senden Benutzer-Profile anzeigen


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 16.11.2012, 08:57     Titel:
  Antworten mit Zitat      
Moin,

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.

Das wäre vielleicht mal ein Ansatz.

Viel Glück

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
duckstance
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 27.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.11.2012, 14:48     Titel:
  Antworten mit Zitat      
Hallo Hubertus,

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:

Code:
[FileName,PathName] = uigetfile('*.bmp;*.tif;*.tiff;*.jpg;*.png','Select Image');
fileName = FileName;
inputPath = strcat(PathName, FileName);
img = imread(inputPath);
img_grey = rgb2gray(img);
img_thresh = im2bw(img_grey, 0.12);
figure, imshow(img_thresh);
SE_open = strel('square', 20);
SE_close = strel('square', 15);
img_opened = imopen(img_thresh,SE_open);
img_closed = imclose(img_opened, SE_close);
figure, imshow(img_closed);
Corners = corner(img_closed, 4);
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.