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

Autocorrelation+Gauß Filter

 

HansiHans
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 10.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.11.2014, 17:31     Titel: Autocorrelation+Gauß Filter
  Antworten mit Zitat      
Hi Leute,

ich möchte die Autocorrelation von einem Bild mit sich selbst durchführen.
Und anschließend einen Gauß-Filter darüberlegen um SpeckleGrößen zu ermitteln.

Ich bin auf folgendes Programm gestoßen

http://www.mathworks.com/matlabcent.....ion/content/SpeckleSize.m

ich möchte das jetzt erstmal nur in Horizontaler Richtung bestimmen und habe die Funktion umgewandelt:

Code:
function [HFWHM]= SpeckleSize (SpeckleRGB)

%Bild wird eingelesen und in uint8 umgewandelt, anschließend zugeschnitten
%damit möglichst viel schwarze Fläche verschwindet.
Raw_Img=SpeckleRGB;
Raw_Img=uint8(Raw_Img);    
Raw_Img=imcrop(Raw_Img, [115 100 115 115]);


M=size(Raw_Img,1);       %Höhe des Bildes
N=size(Raw_Img,2);       %Breite des Bildes
B=rgb2gray(Raw_Img);     %Wandelt es in Graustufenbild=B um
B=double(B);                %Wandelt die Werte in double um
E=B(1,:);                   %Erstellt ein Array mit den Werten von Reihe 1
s=size(xcov(E));            %Ermittelt die Größe des autocovariance Arrays
D=zeros(s);                 %Erstellt ein leeres Array der Größe s
D=double(D);                %Wandelt die Werte in double um
   
        for i=1:M;
         C=B(i,:);
        D=imadd(D,xcov(C,'coeff'));  %Summiert die autocovariance Arrays   für alle Reihen in D auf
        end;
       
H=(D/max(D));             %the finished horizontal product, H, is normalized


%H wird mit Gauss gefitted und die Fläche der Speckles wird aus den Fits
%ermittelt
%H is fit to Gaussians and the speckle size is extracted from the
%fits.

helper1 = 1:size(H,2);


gauss1 = fittype('gauss1');      %definiert gauß-kurvenfit

excludeLowH = excludedata(helper1',H','range',[.2,1]);           %excludes the noise from outside the speckle
optionsH = fitoptions(gauss1);
optionsH.Exclude = excludeLowH;          

     %Führt den Fit durch
[HFit] = fit(helper1',H',gauss1, optionsH);


   
%The SpeckleSize code technically does not find the FWHM and 1/e2 widths of
%the Gaussian fits, but rather the widths at which the Gaussians fall to
%values of .5 and 1/e^2.  This provides a better idea of the speckles size
%even when the Gaussians amplitude is not unity, as expected for a perfect
%fit of the normalized data, but can produce unexpected trends...

HFWHM = (2*(HFit.c1)*sqrt(-log(.5/(HFit.a1))));                  %FWHM values (Full width when the fit = .5)  
     
end


Kann mir jemand sagen, was die Funktion
optionsH = fitoptions(gauss1); macht?

Auch verwendet er : [HFit, HFitStats] = fit(helper1',H',gauss1, optionsH);
Wozu ist HFitStats gut? Habe das einfach weggelassen.

Meine Ergebnisse von den Bildern passen nicht wirklich zur Theorie.
Habe ich etwas falsch gemacht?


Danke schonmal für die Hilfe

Gruß
Hans
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 - 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.