Hallo zusammen,
ich habe zwei Bilder und eine Formel wie das SNR berechnet werden soll, nun möchte ich die Formel in Matlab nachbilden. Die Formel lautet:
SNR=(1*〖mean〗 (S_1 (r)+S_2 (r)))/(√2 〖*stddev〗 (S_1 (r)-S_2 (r)))
wobei S1 und S2 die Bilder sind, die Pixelweise addiert und subtrahiert werden
meine Bilder sind 256x256 groß, uint16.
Nun hab ich mir mal was geschrieben um das SNR wie in der vorgegebenen Formel zu berechnen.
Das Problem ist aber der std Befehl, der kommt mit uint16 nicht klar. ich kann zwar ein double davor setzten und dann funktioniert es auch, aber ist dann das Ergebnis auch noch das gleiche?
Code:
% SNR Berechnung
i=1;
k=1;
clear('SNR') for i=1:256; % Schleife Bildzeile for k=1:256; % schleife Bildspalte % Pixelweise aufaddieren
Meanbild(i,k,1)=Original(i,k,55) + Gauss2(i,k,55);
% Pixelweise subtrahieren
STDBild(i,k,1)=Original(i,k,55) - Gauss2(i,k,55);
k=k+1; %Pixel rückt eine Spalte weiter
end
i=i+1;% Pixel rückt eine Zeile weiter end
Verschoben: 10.07.2014, 16:16 Uhr von denny Von Objektorientierte Programmierung nach Programmierung
Einstellungen und Berechtigungen
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
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.