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

Querschnitt einer Matrix unter einem Winkel

 

N. Rolf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 15:16     Titel: Querschnitt einer Matrix unter einem Winkel
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine Matrix, die mit einer Reihe von Werten gefüllt ist. Nun möchte ich durch die Matrix für einen beliebigen Winkel eine Reihe von Querschnitten ziehen. Wenn ich die Matrixwerte eines Querschnitts aufsummiere und alle Werte hintereinander darstelle, ergibt es somit eine Projektion der Matrix für diesen einen Winkel.

Ich habe schon eine ganze Weile darüber nachgedacht, wie man das geschickt umsetzen kann, stoße aber bei vielen Ansätzen an Unzulänglichkeiten.

Wie macht man so etwas geschickterweise? Für 45 Grad ist die Aufgabe sehr einfach, für 0 bzw. 90 Grad sowieso (Spalten- bzw. Zeilensummen). Welche Abfolge von Matrixelementen summiert man z.B. für 22,5 Grad auf?


Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 28.07.2010, 15:34     Titel:
  Antworten mit Zitat      
Ich arbeite gerade an etwas Ähnlichem.
Man muss sich dafür die Punkte auf der Matrix winkelanhängig berechnen und diese dann auslesen und aufsummieren.
Hier ist ein Teil meines Codes:
Code:


function [Tracevalsum] = trace(Bild,Koor0,Theta,Step,sensorabstand)
%%
x0mat=coor2mat(Koor0(1,:));                                                % x0mat=coor2mat(x0): Startwerte werden auf Bildmatrix umgerechnet
y0mat=coor2mat(Koor0(2,:));
%--------------------------------------------------------------------------
%Winkelumrechnung
% Theta=mod(Theta,360);                                                    % modulo-Operation(360)Winkel werden umgerechnet zu Winkel zw 0:360  
%--------------------------------------------------------------------------

          n=0:(sensorabstand-1)/step;                                      % n:Vektor von 0 bis Breite Bildmatrix                                                                

          unRx=(x0mat+n*Step*-cosd(Theta));                                % Positionsberechnung über trigonometrische Funktionen
          x=round(unRx);                                                   % round: Rundung|Position muss gerundet werden  
          unRy=(y0mat+n*Step*sind(Theta));                                                      
          y=round(unRy);
         
%--------------------------------------------------------------------------
% Traceval: auslesen der Bildmatrix an den Positionen x,y  
  Traceval=(Bild(sub2ind(size(Bild),y,x)));
  Tracevalsum=sum(Traceval)';
 


Dazu muss du dir noch Startpunkte berechnen lassen die auf sensorabstand/2 liegen und schon funktioniert es.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
N. Rolf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 16:07     Titel:
  Antworten mit Zitat      
Danke für die Antwort.

Das Problem ist bei diesen Winkel folgendes: Während eine Spaltensumme aus der Anzahl der Zeilenelemente besteht und 45°-Winkelsummen auch aus der gleichen Anzahl von Elementen besteht, werden bei allen anderen Summen unter Umständen mehr Matrixelemente aufsummiert, da die Querschnitte über mehrere Matrixzellen geht (zwar nur teilweise, aber irgendwie muss man ja definieren, welche Zellen dazugenommen werden).

Meiner Meinung nach lassen sich die Summen für 0, 90, +45 und -45 Grad zwar miteinander vergleichen, weil sie aus der gleichen Anzahl von Matrixelementen bestehen, aber alle für alle anderen Winkel macht man einen Fehler. Lässt sich dieser umgehen?
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 28.07.2010, 16:21     Titel:
  Antworten mit Zitat      
n ist in meinem Beispiel der Abstand an dem ausgelesen wird und der ist ja immer gleich für jeden Winkel den du über die Matrix legst und somit hat man immer eine feste Anzahl von Werten die man erhält.

Gruß Achi
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
N. Rolf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 17:11     Titel:
  Antworten mit Zitat      
Zunächst muss ich mich korrigieren, denn die +-45° lassen sich nicht mit den 0 und 90° vergleichen. Bei 0 und 90° hat man für jede Spalten- oder Zeilensumme die gleiche Anzahl von Elementen. Bei +-45° hat man zunächst ein Element, in der Mitte am meisten (Anzahl Zeile/Spalte bei quadr. Matrix) und danach wieder abnehmend. Ebenso sind sie nicht vergleichbar, weil es bei +-45° mehr Querschnitt gibt, wenn man die Querlinien jedes Anzahlselements einer Zeile/Spalte verfolgt.

@ Achi: Meiner Meinung nach summierst Du für EINEN Querschnitt manche Matrixelemente MEHRFACH auf, da die Schrittweite für den Randbereich sehr klein werden kann. Streng genommen ist das (insbesondere für kleine Matrizen) auch nicht korrekt.
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 28.07.2010, 17:27     Titel:
  Antworten mit Zitat      
Wieso die Schrittweite ist immer gleich und einfach mehrfaches von 1 n=0:(sensorabstand-1) 0,1,2,3...
Klar werden die Elemente mehrfach genommen in der Mitte einer Matrix, da führt kein weg dran vorbei. In meinem Fall, da ich es zur Rekonstruktion von Bildern benutze muss das Bild z.B. mit einem Rampfilter bearbeitet werden.
Suchg mal Radontransformation im Netz.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
N. Rolf

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2010, 17:43     Titel:
  Antworten mit Zitat      
Meine Anwendung ist ebenfalls die Rekonstruktion von Bildern. Um die Rekonstruktionsmethode zu bewerten, wollte ich gerade diese Querschnitte eines bekannten Bildes erzeugen.

Die Radon-Transformation werde ich nochmal weiter verfolgen. Es scheint auf der gefilterten Rückprojektion zu basieren, die mir bereits über den Weg gelaufen ist. Kannst Du zu dem Thema gute Literatur oder Webseiten empfehlen?
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 28.07.2010, 17:56     Titel:
  Antworten mit Zitat      
Zum Einstieg:

http://homepages.inf.ed.ac.uk/rbf/C.....Slice_Reconstruction.html

oder hier:

http://homepages.fh-giessen.de/~hg1....._Jens%20Ehrhardt_2003.pdf

ich selbst arbeite mit dem Buch:

Digitale Bildverarbeitung 3.Auflage von Bernd Jähne Springer Verlag

Schönen Abend noch

P.S. unter Forum Bildverarbeitung hab ich gerade meine aktuellen Ergebnisse, leider is die Qualität der Rekonstruktion noch nicht die beste...
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.07.2010, 18:39     Titel:
  Antworten mit Zitat      
Hallo,

Wenn ihr die Image-Processing-Toolbox habt, wäre IMPROFILE vielleicht hilfreich.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 03.08.2010, 15:37     Titel:
  Antworten mit Zitat      
Ich hab hier noch einen Link zu eienm Skript das funktionieren dürfte:

http://www.lems.brown.edu/~msj/cs292/assign1/ct.html


Bei mir leider nicht. Hab den Befehl imrotate nicht
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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 - 2025 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.