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

Matrix

 

Anna

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2009, 14:22     Titel: Matrix
  Antworten mit Zitat      
Hallo,
ich bräuchte bitte mal hilfe bei folgendem Problem:

Durch entsprechende Bildvorverarbeitung wird die Kante eines Gegenstands aus einem SW-Bild extrahiert.

Aktuell werden die Punkte einfach nur aus dem Bild per
Code:
[x y] = find(Bild(:,:,1))==0;

herausgesucht.

Ich habe dann also eine Matrix [x y] mit Punkten (mehrere Tausend Wertepaare) der abgetasteten "Kurve" des Gegenstandes (die Funktion der Kurve ist unbekannt).
Diese Punkte möchte ich nun so um-sortieren, dass auf dem Gegenstands-Rand nebeneinander liegende Punkte auch in der Matrix nebeneinander liegen.

Ich dachte an eine Schleife, die den ersten Punkt i nimmt und dann einfach in x-Richtung incrementiert und bei i+1 das y aus der Matrix sucht.

Ich müßte ja erstmal schauen, an welcher Stelle der Matrix [x y] x = i ist. und mir die Stelle "merken".
Und dann einfach nur zuweisen...?

Aber ich komme mit der Deklaration nicht klar.

Code:

[x y Ind]=find(Bild5(:,:,1)==0);
laenge=length(x);
for i=1:1:laenge
   [x Ind]= ....?
   [xn(i) yn(i)]=[x(Ind) y(Ind)];

end;
 


Kann mir bitte mal jemand helfen.
Danke
Grüße
Anna[/code]


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 25.06.2009, 15:16     Titel: Re: Matrix
  Antworten mit Zitat      
Anna hat Folgendes geschrieben:
Diese Punkte möchte ich nun so um-sortieren, dass auf dem Gegenstands-Rand nebeneinander liegende Punkte auch in der Matrix nebeneinander liegen.

Durch den find hast du doch schon Punkte ausserhalb des Randes entfernt, oder ? Warum willst du die Koordinaten umsortieren? btw. gibt es schlimmstenfalls 3 nebenliegende Punkte...

Anna hat Folgendes geschrieben:

Ich dachte an eine Schleife, die den ersten Punkt i nimmt und dann einfach in x-Richtung incrementiert und bei i+1 das y aus der Matrix sucht.

dann schiebst du den Punkt vom Randbereich weg und verkleinerst damit dein Objekt Shocked

Anna hat Folgendes geschrieben:

Ich müßte ja erstmal schauen, an welcher Stelle der Matrix [x y] x = i ist. und mir die Stelle "merken".
Und dann einfach nur zuweisen...?

Was hat der Index mit deinen Koordinaten zu tun ? Was soll das x ausserhalb der Klammern sein?

Anna hat Folgendes geschrieben:

for i=1:1:laenge
[x Ind]= ....?
[xn(i) yn(i)]=[x(Ind) y(Ind)];
end;

wieder so ein x-Problem... Ausserdem passt das unten ganz&gar nicht zu dem, was du oben geschrieben hast...
Private Nachricht senden Benutzer-Profile anzeigen
 
Anna

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.06.2009, 15:24     Titel:
  Antworten mit Zitat      
Andy386 hat Folgendes geschrieben:

Anna hat Folgendes geschrieben:

Ich dachte an eine Schleife, die den ersten Punkt i nimmt und dann einfach in x-Richtung incrementiert und bei i+1 das y aus der Matrix sucht.

dann schiebst du den Punkt vom Randbereich weg und verkleinerst damit dein Objekt Shocked

die schleife will ich nicht auf das Bild, sondern auf die Matrix mit den Bildpunkten anwenden. und die Bildpunkte sollen auch dann auch nicht incrementiert werden, sondern das i soll als zähler laufen (=incrementiert).

Zum Grund, vielleicht wird es dann etwas klarer:
ich will die Punkte in der Reihenfolge haben, wie sie auf dem Gegenstandsrand liegen.

Dann das ist ja dann sozusagen eine Funktion. und auf der Funktion muss ich lokale Extremwerte finden.
Somit muss ich die jeweils benachbarten Punkte neben einander haben um die entsprechend der Monotoniebedinung zu untersuchen (Vorzeichenwechsel...)

Anna
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 25.06.2009, 16:28     Titel:
  Antworten mit Zitat      
okay. Du hast bei den Koordinatenpaaren, die find ausspruckt aber doch nur eine nx2-Matrix, oder?

sind ja noch Fragen offen (z.B. bzgl. des x)

Am besten du gibst mal ein Zahlenbeispiel...
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.