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 winkelabhängig auslesen

 

gruenertee
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 15.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2015, 12:38     Titel: Matrix winkelabhängig auslesen
  Antworten mit Zitat      
Liebe Matlab-Forum User,

über den Befehl
Code:
lese ich meine Bilddatei in Matrix Form ein. Das Bild stellt dabei die Skizze eines Y-Kanales dar.



Alle Werte der Matrix in Richtung der roten Linie sollen nun aus gelesen werden. Der Winkel soll dabei erstmal allgemein bleiben. Wäre die rote Linie horizontal dann müsste ich ja nur die Zeilennummer kennen und würde die Matrix in dieser Zeile nach allen spaltenwerten abfragen;
Code:

imread('Bild.jpg');
[x,y]=ginput(2);
Ctop=round(y(1,1));
Cbottom=round(y(2,1);
mitte=Ctop+round((Cbottom-Ctop)/2);
line=squeeze(bild(mitte,:));


 


aber jetzt wäre meine Zeile ja nicht mehr konstant. Gäbe es eine Möglichkeit eine Matrix winkelabhängig auszulesen?


Vielen Dank,

Sebastian alias gruenertee
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.05.2015, 13:29     Titel:
  Antworten mit Zitat      
huhu . die indexe der matrix sind doch auch nix anderes als ganzahlige koordinaten. ich würde also y in abhängigkeit von x angeben und dann das runden nicht vergessen. damit soltlest du ja dann die index paare bekommen wenn du den startpunkt kennst oder?
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
gruenertee
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 15.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.05.2015, 14:11     Titel:
  Antworten mit Zitat      
Der Hinweis darauf, dass die indexe der Matrix auch nur ganzzahlige Koordinaten sind hat geholfen. Also meine Idee ist jetzt die Umsetzung der Geradengleichung:

Zitat:
y=-tan(alpha)*m + Startpunkt


mit alpha als Winkel und m Steigung und negativer Steigung weil ich in die andere Richtung gehen möchte. Den Startpunkt hole ich mir über

Code:

alpha = 60;
Bild =imread('Bild.jpg');
[x,y]=ginput(2);
sy=abs(round((y(1,1)-y(2,1))/2));
gerade= round(-tand(alpha)*Bild(:,sy)+sy)

Linie1=squeeze(Bild(gerade,:));

 


Es scheint zu funktionieren, nur frage ich mich an dieser Stelle ob er auch genau das macht was es soll und zwar die Werte in Matrix auf der Gerade auszulesen Smile

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 28.05.2015, 14:18     Titel:
  Antworten mit Zitat      
sowas lässt sich doc einfach mit einem beispiel per hand nachprüfen
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
weltenwanderer87
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 27.05.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.05.2015, 10:20     Titel:
  Antworten mit Zitat      
Vielen Dank soweit für die Hilfe! Smile Eine letzte Frage hätte ich dann doch noch; Und zwar wird meine Bild.jpg Datei über den Befehl
Code:
Bild=imread('Bild.jpg');
als 3D Matrix ausgegeben; ich frage mich jetzt weshalb dies geschieht; kann ich die Bild.jpg Datei nicht als 2D Matrix ausgeben lassen? Oder müsste ich die .Jpg Datei hierzu nocheinmal formatieren?

Gruß,

Sebastian
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 29.05.2015, 10:46     Titel:
  Antworten mit Zitat      
das liegt daran das es als rgb eingelesen wird denke ich mal. darum die drei dimensionen. wenn du nur schwarz weiß willst dann musst du rgb2gray benutzen.
_________________

richtig Fragen
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.