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

Faser-Orientierung mit atan2()

 

Olivier

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.03.2012, 12:42     Titel: Faser-Orientierung mit atan2()
  Antworten mit Zitat      
Hallo,

Ich muss Informationen über Faserwinkel aus Mikroskopie-Bildern entziehen. Dazu unterteile ich meine Bilder mit der blocproc function in Teilbereiche und berechnen für jeden Bereich die Orientierung der Fasern aus dem Strukturtensor.

Code:
ang=.5*atan2(2*Ixx*Iyy,Iyy*Iyy-Ixx*Ixx)*180/pi;


Dies ergibt auch gute Resultate, jedoch scheint es ein Problem bei 45°, also für arctan(..)=90° zu geben. Hier bekomm ich einen Peak, welcher nicht dort sein dürfte (zB wenn ich das Bild um 90° drehe, habe ich noch immer einen Peak bei 45°, also ist es ein Berechnungsproblem). Die Berechnungsformel müsste soweit stimmen, es gibt auch sinnvolle Resultate für alle Winkel mit Ausnahme von 45°.

Kann es sich um ein numerisches Berechnungsproblem handeln (eventuell ein Problem von Genauigkeit, oder der function atan2)? (Immerhin ist tan für 90° undefiniert).


Olivier

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.03.2012, 08:49     Titel:
  Antworten mit Zitat      
Alternativ könnte ich mir auch noch vorstellen dass das Problem vielleicht mit Randeffekten zusammenhängt. Weiss jemand ob solche Probleme mit blockproc bekannt sind?
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 30.03.2012, 12:05     Titel:
  Antworten mit Zitat      
Hi,

mach doch einmal eine Fehlerrechnung.
Anhand der Ableitungen - aber auch schon an der Originalgleichung - erkennt man, daß es im Bereich (0,0) eine Singularität gibt.

Kleine numerische Streuungen für die Komponenten Ixx und Iyy, die durch die Ortsdiskretisierung digitalisierter Bild selbstverständlich sind, führen so zu eklatanten Fehlern bei der Winkelberechnung.

Viele Grüße
Andi
Private Nachricht senden Benutzer-Profile anzeigen
 
Olivier

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.03.2012, 23:16     Titel:
  Antworten mit Zitat      
Hoi,

vielen Dank für die Antwort, das macht eigentlich Sinn.

Gibt es eine Möglichkeit die fehlerhaften Rechnungen rauszufiltern? Im Moment habe ich eine "Notlösung" gewählt, indem ich die Werte bei 45° rausnehme und durch die Nachbar-werte ersetze:

[b][y,x]= hist (angles,180);

for i=1:length(x)
if x(i)>44 && x(i)<45
y(i)=.5*(y(i-1)+y(i+2));
elseif x(i)>45 && x(i)<46
y(i)=.5*(y(i-2)+y(i+1));
end
end[b]

Das funktioniert eigentlich auch, ist aber keine "schöne" Lösung.
 
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.