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

Vektorkurve aus Kantenzug (nach Kantenerkennung mit Canny)

 

Mattlapp
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.12.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 19.12.2012, 09:27     Titel: Vektorkurve aus Kantenzug (nach Kantenerkennung mit Canny)
  Antworten mit Zitat      
Hallo!

Ich hoffe ich poste im richtigen Forum. Ich bin neu hier. Wenns falsch ist, korrigiert mich bitte.

Ich bin gerade dabei ein Projekt durchzuführen, bei dem aus einem Bild die Kanten extrahiert werden sollen,
um sie danach mit einem Motor nachzufahren.

Die Kantendetektion mittels Canny Kantendetektor habe ich schon programmiert. Mein Problem ist im Moment,
wie bekomme ich aus dem Grauwert-Kantenbild die Informationen der Kanten, sodass ich die mit dem Motor verwerten kann?

Der Motor soll die Umrisse eines Objektes abfahren. Und zwar nicht zeilenweise sondern wenn möglich die
Kante direkt abfahren (Am Motor soll später ein Laser hängen, der die Kontur brennt).

Wie könnte man das machen?
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: 19.12.2012, 11:02     Titel:
  Antworten mit Zitat      
Moin,

das wird dazu sicherlich mehrere Wege geben. Eine Möglichkeit ist, die nach 'canny' gefundenen weißen Kanten (1 oder 255) mit [x,y]=find... zu suchen.
Dann hast du die Koordinaten in x & y, die du in einen 2-dim. Vektor wieder zusammen führen kannst.

Viele Grüße

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Mattlapp
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.12.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 09.01.2013, 10:26     Titel:
  Antworten mit Zitat      
Ok! Schonmal vielen Dank dafür. Das hat mir schonmal insofern weiter geholfen, als dass ich jetzt 2 Vektor mit den Positionen der Punkte des Kantenzuges habe.

Mein Code sieht bisher so aus:
Code:
[I,map] = imread(image_path,image_type);

%in Grauwerte umwandeln
I = rgb2gray(I);

%Canny Kantendetektion anwenden
I = edge(I,'canny');

%Die Werte in der Matrix "I", die ungleich Null sind erkennen
[row,column]=find(I==1)


Die Frage, die sich jetzt noch stellt ist, wie bekomme ich daraus einen geschlossenen Kantenzug, den ich abfahren kann. Ich habe schon ein wenig gesucht, und habe ein wenig zu"k-nearest-neighbor" gelesen. Aber das ist wohl ein nicht-triviales Problem.

Was wäre die einfachste Art die Punkt nach Nähe zu sortieren?

Gruß Christoph
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: 09.01.2013, 10:53     Titel:
  Antworten mit Zitat      
Ich könnte mir vorstellen, dass die Hough Transformation eine weitere Möglichkeit wäre. Du kannst mal unter Fahrspurerkennung googeln. Da wird auf diese Transformation hingewiesen.
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.