function sig = Guass_Fit(sig) %return sigma % Emit_Calc.m % read one image from files % fits a gaussian funtion on the projection, get the rms values. % then pass them to fit parabola % % Dec-2010 % Sadiq Setiniyaz % now we do the action...................................... disp('Read image ...') % get image for scan=1:6 switch scan case 1 addpath(genpath('C:\work\Get_Emittance\Scan1\')); case 2 addpath(genpath('C:\work\Get_Emittance\Scan2\')); case 3 addpath(genpath('C:\work\Get_Emittance\Scan3\')); case 4 addpath(genpath('C:\work\Get_Emittance\Scan4\')); case 5 addpath(genpath('C:\work\Get_Emittance\Scan5\')); case 6 addpath(genpath('C:\work\Get_Emittance\Scan6\')); end for ii = 1:41; imNo = ii; switch ii case 1 im = imread('1.png'); % reading 1.png tifname='1'; case 2 im = imread('2.png'); % reading 1.png tifname='2'; case 3 im = imread('3.png'); tifname='3'; case 4 im = imread('4.png'); tifname='4'; case 5 im = imread('5.png'); tifname='5'; case 6 im = imread('6.png'); tifname='6'; case 7 im = imread('7.png'); tifname='7'; case 8 im = imread('8.png'); tifname='8'; case 9 im = imread('9.png'); tifname='9'; case 10 im = imread('10.png'); tifname='10'; case 11 im = imread('11.png'); tifname='11'; case 12 im = imread('12.png'); % reading 1.png tifname='12'; case 13 im = imread('13.png'); tifname='13'; case 14 im = imread('14.png'); tifname='14'; case 15 im = imread('15.png'); tifname='15'; case 16 im = imread('16.png'); tifname='16'; case 17 im = imread('17.png'); tifname='17'; case 18 im = imread('18.png'); tifname='18'; case 19 im = imread('19.png'); tifname='19'; case 20 im = imread('20.png'); tifname='20'; case 21 im = imread('21.png'); tifname='21'; case 22 im = imread('22.png'); % reading 1.png tifname='22'; case 23 im = imread('23.png'); tifname='23'; case 24 im = imread('24.png'); tifname='24'; case 25 im = imread('25.png'); tifname='25'; case 26 im = imread('26.png'); tifname='26'; case 27 im = imread('27.png'); tifname='27'; case 28 im = imread('28.png'); tifname='28'; case 29 im = imread('29.png'); tifname='29'; case 30 im = imread('30.png'); tifname='30'; case 31 im = imread('31.png'); tifname='31'; case 32 im = imread('32.png'); % reading 1.png tifname='32'; case 33 im = imread('33.png'); tifname='33'; case 34 im = imread('34.png'); tifname='34'; case 35 im = imread('35.png'); tifname='35'; case 36 im = imread('36.png'); tifname='36'; case 37 im = imread('37.png'); tifname='37'; case 38 im = imread('38.png'); tifname='38'; case 39 im = imread('39.png'); tifname='39'; case 40 im = imread('40.png'); tifname='40'; case 41 im = imread('41.png'); tifname='41'; end if isempty(im) warndlg('Could not grab the image. Check the image server.') return end imd = double(im(:,:,1)); imd=255*imd; % rescale %imt=imd'; % transpose to orient it correctly imt=imd; % determine image size in pixels dim=size(imt); %dim=size(imd); dim_x = dim(1); dim_y = dim(2); %pic = imt - imbgt; pic = imt; %enter calibration here: calibration_y=0.000169*0.54344345; %m/px calibration_x=0.000169*0.54344345; %m/px xunit='m'; yunit='m'; % create scaling vectors x=[0:0.00001:calibration_x*dim_x];%how to do the binning y=[0:0.00001:calibration_y*dim_y];%how to do the binning % profiles profx = sum(pic,1);%how to make projection profy = sum(pic,2)';%how to make projection xbins=size(profx); ybins=size(profy); x=(1:1:xbins(2)); y=(1:1:ybins(2)); % gauss fit with narrowed range xl = 1; xr = 656; yl = 1; yr = 506; gau_x = gaussfit(x(xl:xr),profx(xl:xr));%gaussion fitting in x gau_y = gaussfit(y(yl:yr),profy(yl:yr));%gaussion fitting in y % unpack fit parameters % include calibration pix-> mm gaux_sigma = gau_x(1)*calibration_x;%How to get rms of the gaussion fit. gaux_amplitude = gau_x(2); gaux_center = gau_x(3)*calibration_x; % gauy_sigma = gau_y(1)*calibration_y;%How to get rms of the gaussion fit. gauy_amplitude = gau_y(2); gauy_center = gau_y(3)*calibration_y; sigx(scan,ii)=gaux_sigma; sigy(scan,ii)=gauy_sigma; sig_index(scan,ii) = ii; %store scan number thisfilename=tifname; % write summary % string = [thisfilename,' ',... % num2str(gaux_sigma,'%12.4f'),' ', ... % num2str(gaux_amplitude,'%12.4f'),' ', ... % num2str(gaux_center,'%12.4f'),' ', ... % num2str(gauy_sigma,'%12.4f'),' ', ... % num2str(gauy_amplitude,'%12.4f'),' ', ... % num2str(gauy_center,'%12.4f'),' ', ... % ]; % disp(string); %Plot_Beam_Spot(x,y,pic); %Plot_Gauss_Fit(x,y,profx,profy,gau_x,gau_y,gaux_sigma,gauy_sigma,xunit,yunit,gaux_center,gauy_center,thisfilename); end end % check rms x, y, and indexes. %sigx %sigy %sig_index % plot beam spots and Gaussian fits for ii = 1:41 mean_sigx(ii) = mean(sigx(:,ii)); mean_sigy(ii) = mean(sigy(:,ii)); er_sigx(ii) = std(sigx(:,ii)); er_sigy(ii) = std(sigy(:,ii)); end %mean_sigx %er_sigx %mean_sigy %er_sigy Emit_Parabola_Fit_kl_XProjection(mean_sigx,er_sigx); Emit_Parabola_Fit_kl_YProjection(mean_sigy,er_sigy); return