⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 image_stat.m

📁 matlab处理图像的一些基本方法。其中有一部分mex程序需要安装编译
💻 M
字号:
function image_stat(command)%IMAGE_STAT  Computes and display some Image statistic values%%       IMAGE_STAT(COMMAND)%%       Valid commands:%       COMMAND: START       Begin the session%                EVALUATE    Computes the image statistics%				 SETVALUES   Set the values from the statistic%				 RE_EVALUATE Evaluate and set the values%                SAVE        Save the statistics in a file%%       Calculations:%           Size = size(I);%           Pixels = prod(size(I));%           Sum = sum(sum(I));%           Min = min(min(I));%           Max = max(max(I));%           Mean = sum(sum(I))/prod(size(I));%           Median = median(reshape(I,prod(size(I)),1));%           StDev = std(reshape(I,prod(size(I)),1));%           StErr = StDev/sqrt(prod(size(I)));%%%       Claudio  Oct. 30 1995%%% Copyright (c) 1995 by Claudio Rivetti and Mark Young% claudio@alice.uoregon.edu,    mark@alice.uoregon.edu%global I Handlefig B_frame Uibgcolor savepath Fname Fstatextglobal txt_val prev_Sautoname prev_Sascii val_txtglobal Isize Ipx Isum Imin Imax Imean Imedian Istd Isterrif nargin==0  command='START';endif isempty(I)    return;endif strcmp(upper(command), 'START')    if isempty(prev_Sautoname), prev_Sautoname=0; end    if isempty(prev_Sascii), prev_Sascii=0; end    Sstr=[  '  Size:';...            'Pixels:';...            '   Sum:';...            '   Min:';...            '   Max:';...            '  Mean:';...            'Median:';...            ' StDev:';...            ' StErr:'];			    % position variables---------------------------------------------------    pos=get(B_frame, 'Position');    uiwidth=0.12;    uithick=0.035;    middle=pos(1)+(pos(3)-uiwidth)/2;    %---------------------------------------------------------------------    % Positions of buttons -----------------------------------------------    txt_pos = [pos(1)+0.005 pos(2)+0.72 0.08, 0.030];    val_pos = [pos(1)+0.09 pos(2)+0.72 0.1, 0.030];    exe_pos = [middle pos(2)+0.35 uiwidth, uithick];    par_pos = [middle pos(2)+0.30 uiwidth, uithick];    f2pos= [middle-0.02 pos(2)+0.1 uiwidth+0.04 0.17];    save_pos = [middle pos(2)+0.22 uiwidth uithick];    autoname_pos = [middle pos(2)+0.155 uiwidth 0.030];    ascii_pos = [middle pos(2)+0.115 uiwidth 0.030];    %--------------------------------------------------------------    % CallBacks    exe_cbk  ='image_stat(''RE-EVALUATE'');';    par_cbk  ='display_header';    save_cbk ='image_stat(''SAVE'');';    figure(Handlefig);	image_stat('EVALUATE');    initbuttons('Image Statistics', 'Done', '');    pos=txt_pos;    for i=1:size(Sstr,1)        pos(2)=txt_pos(2)-0.03*i;        uicontrol(Handlefig, 'Style', 'text',...            'String', Sstr(i,:),...            'Units', 'normalized',...            'Horiz', 'right',...            'Position', pos,...            'BackgroundColor', Uibgcolor);    end    pos=val_pos;    val_txt=zeros(size(Sstr,1),1);    for i=1:size(Sstr,1)        pos(2)=val_pos(2)-0.03*i;        val_txt(i)=uicontrol(Handlefig, 'Style', 'text',...               'String', '',...               'Units', 'normalized',...               'Horiz', 'left',...               'Position', pos,...               'ForegroundColor', 'y',...               'BackgroundColor', Uibgcolor);    end    uicontrol(Handlefig, 'Style', 'push', ...        'String', 'Re-Evaluate', ...        'Units', 'normalized', ...        'Position', exe_pos, ...        'CallBack', exe_cbk);    uicontrol(Handlefig, 'Style', 'push', ...        'String', 'Parameters', ...		'Inter', 'yes',...        'Units', 'normalized', ...        'Position', par_pos, ...        'CallBack',  par_cbk);    uicontrol(Handlefig, 'Style', 'frame',...        'Units', 'normalized',...        'Position',f2pos,...        'BackgroundColor', Uibgcolor);    uicontrol(Handlefig, 'Style', 'push', ...        'String', 'Save', ...        'Units', 'normalized', ...        'inter', 'yes',...        'Position', save_pos, ...        'CallBack', save_cbk);    uicontrol(Handlefig, 'Style', 'check', ...        'String', 'Auto Name', ...        'Units', 'normalized', ...        'value', prev_Sautoname,...        'Position', autoname_pos,...     'CallBack', 'global prev_Sautoname;prev_Sautoname=get(gco, ''value'');');    uicontrol(Handlefig, 'Style', 'check', ...        'String', 'Ascii File', ...        'Units', 'normalized', ...        'value', prev_Sascii,...        'Position', ascii_pos,...        'CallBack', 'global prev_Sascii;prev_Sascii=get(gco, ''value'');');    image_stat('SETVALUES');end  % STARTif strcmp(upper(command), 'EVALUATE')    f=watchon;    statusbar('Evaluating image statistics...');    Isize=size(I);    Ipx=prod(Isize);    Isum=sum(sum(I));    Imin=min(min(I));    Imax=max(max(I));    Imean=Isum/Ipx;    Imedian=median(I(:));    Istd=std2(I);    Isterr=Istd/sqrt(Ipx);    clearstatusbar;    watchoff(f);end      % EVALUATEif strcmp(upper(command), 'SETVALUES')    set(val_txt(1), 'string', sprintf('%dx%d', Isize(1), Isize(2)));    set(val_txt(2), 'string', sprintf('%d', Ipx));    set(val_txt(3), 'string', sprintf('%.4f', Isum));    set(val_txt(4), 'string', sprintf('%.4f', Imin));    set(val_txt(5), 'string', sprintf('%.4f', Imax));    set(val_txt(6), 'string', sprintf('%.4f', Imean));    set(val_txt(7), 'string', sprintf('%.4f', Imedian));    set(val_txt(8), 'string', sprintf('%.4f', Istd));    set(val_txt(9), 'string', sprintf('%.4f', Isterr));end  % SETVALUESif strcmp(upper(command), 'RE-EVALUATE')  image_stat('EVALUATE');  image_stat('SETVALUES');end  % RE-EVALUATEif strcmp(upper(command), 'SAVE')  ext=['*.mat';'*.txt'];  if prev_Sautoname    fext=Fstatext;    if ~isempty(findstr(fext,'.mat')) & prev_Sascii==1      fext=strrep(fext, '.mat', '.txt');    end    fname = [savepath Fname fext];  else    [name, p] = uiputfile([savepath ext(prev_Sascii+1,:)]);    if ~isempty(name) & name ~= 0      fname = [p name];    end  end  if ~isempty(fname)    f=watchon;	if prev_Sascii==0      eval(['save ' fname ' Isize Ipx Isum Imin Imax Imean Imedian Istd Isterr']);	else	  SM=['Image Statistic of: ' Fname ' (' date '  ' time ')'];	  SM=str2mat(SM, 13);	  SM=str2mat(SM, ['Size:' 9 sprintf('%dx%d', Isize(1), Isize(2))]);	  SM=str2mat(SM, ['Pixels:' 9 sprintf('%d', Ipx)]);	  SM=str2mat(SM, ['Sum:' 9 sprintf('%.4f', Isum)]);	  SM=str2mat(SM, ['Min:' 9 sprintf('%.4f', Imin)]);	  SM=str2mat(SM, ['Max:' 9 sprintf('%.4f', Imax)]);	  SM=str2mat(SM, ['Mean:' 9 sprintf('%.4f', Imean)]); 	  SM=str2mat(SM, ['Median:' 9 sprintf('%.4f', Imedian)]); 	  SM=str2mat(SM, ['StDev:' 9 sprintf('%.4f', Istd)]); 	  SM=str2mat(SM, ['StErr:' 9 sprintf('%.4f', Isterr)]);	  writestr(fname, SM);    end    statusbar(['Statistics saved in ' fname]);    watchoff(f);    clearstatusbar('WAIT');  endend  % SAVEreturn

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -