wtbutils.m
上传用户:haiyisale
上传日期:2013-01-09
资源大小:3246k
文件大小:6k
源码类别:

波变换

开发平台:

Matlab

  1. function varargout = wtbutils(option,varargin)
  2. %WTBUTILS Wavelet Toolbox (Resources) Utilities.
  3. %   OUT1 = wtbutils(OPTION,VARARGIN)
  4. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 04-May-99.
  5. %   Last Revision: 06-Mar-2000.
  6. %   Copyright 1995-2002 The MathWorks, Inc.
  7. %   $Revision: 1.7 $  $Date: 2002/04/14 19:49:32 $
  8. switch option
  9.   case 'colors'
  10.     % Miscellaneous Colors.
  11.     %----------------------
  12.     DefColor = mextglob('get','Def_DefColor');
  13.     white = isequal(DefColor(1),'w');
  14.     type = varargin{1};
  15.     switch type
  16.       case 'sig'  % TYPE = 'sig'  - signal color.
  17.         varargout{1} = [1 0 0];     % Red
  18.       case 'ssig' % TYPE = 'ssig' - synthesized signal color.
  19.         varargout{1} = [1 1 0];     % Yellow
  20.         if white , varargout{1} =  [1 1 0]/1.1; end;
  21.       case 'stem' % 
  22.         varargout{1} = [1 1 0];     % Yellow
  23.         if white , varargout{1} =  [1 1 0]/1.1; end;
  24.       case 'app'  % TYPE = 'app'  - approximations colors.
  25.         % in2 = NB Colors or 'flag'
  26.         %--------------------------
  27.         varargout{1} = [0 1 1];   % Cyan
  28.         if white
  29.             % varargout{1} = varargout{1}/2; % Dark Cyan
  30.             varargout{1} = [0 0 1]/1.05;     % Dark Blue
  31.         end;
  32.         if length(varargin)>1
  33.           if ischar(varargin{2}) , return; end
  34.           nbCOL = varargin{2};
  35.           varargout{1} = wtbutils('colors','scaled',varargout{1},nbCOL);
  36.           if ~white , varargout{1}(:,2) = 0.75; end
  37.         end
  38.       case 'det'  % TYPE = 'det'  - details colors.
  39.         % in2 = NB Colors or 'flag'
  40.         %--------------------------
  41.         varargout{1} =  [0 1 0];    % Green
  42.         if white
  43.             varargout{1} = varargout{1}/2; % Dark Green
  44.         end;
  45.         if length(varargin)>1
  46.           if ischar(varargin{2}) , return; end
  47.           varargout{1} = wtbutils('colors','scaled',varargout{1},varargin{2});
  48.         end
  49.       case {'res'} 
  50.         varargout{1} = [1 0.70 0.28]; % Orange
  51.       case 'snod' % TYPE = 'snod' - synthesized node color. 
  52.         varargout{1} = [1 0 1];     % Magenta
  53.       case 'scaled'  % TYPE = 'scaled' - scaled colors
  54.         % in2 = basic color [R G B]
  55.         % in3 = NB Colors
  56.         %--------------------------
  57.         baseCOL = varargin{2};
  58.         nbCOL   = varargin{3};
  59.         out1 = baseCOL;
  60.         dcol = (1-baseCOL);
  61.         if sum((0<dcol) & (dcol<1))==0
  62.             dcol = dcol/nbCOL;
  63.             out1 = out1(ones(1,nbCOL),:);
  64.             for k=1:nbCOL-1
  65.                  out1(k,:) = out1(k,:)+dcol.^(1/(nbCOL+1-k));
  66.             end
  67.             out1 = max(0,min(out1,1));
  68.         else
  69.             dcol(dcol==1)= 0;
  70.             dcol = dcol/max(1,nbCOL-1);
  71.             out1 = [0:nbCOL-1]'*dcol+baseCOL(ones(1,nbCOL),:);
  72.             out1 = flipud(out1);
  73.         end
  74.         varargout{1} = out1;
  75.       case 'legend'
  76.         varargout = {[1 1 0],[1 0 1],[0 1 1]};
  77.       case {'linTHR','title','wfilters','coefs','linDW2D','arrow'}
  78.         varargout = {[1 1 0]};
  79.       case {'tree'}
  80.         varargout = {[1 1 1],[1 1 0]};
  81.       case {'cw1d'}
  82.         if length(varargin)<2
  83.             varargout = {[1 0 0],[0 1 0],[0 1 1]}; % Red, Green, Cyan
  84.         end
  85.         choice = varargin{2};
  86.         switch choice
  87.           case 'sig' , varargout{1} = [1 0 0];   % Red
  88.           case 'lin' , varargout{1} = [0 1 0];   % Green
  89.           case 'spy' , varargout{1} = [0 1 1];   % Cyan
  90.         end
  91.       case {'dw1d'}
  92.         choice = varargin{2};
  93.         switch choice
  94.           case 'sepcfs' , varargout{1} = [1 0 1];  % Magenta
  95.         end
  96.       case {'dw2d'}
  97.         varargout = {[1 1 0],[1 1 1],[0 1 0]};
  98.       case {'sw2d'}
  99.         choice = varargin{2};
  100.         switch choice
  101.           case 'histRES' , varargout{1} = wtbutils('colors','res');  % Orange
  102.         end
  103.       case {'wp1d'}
  104.         choice = varargin{2};
  105.         switch choice
  106.           case 'node'  , varargout{1} = [0 1 1];  % Cyan
  107.           case 'hist'  , varargout{1} = [1 0 1];  % Magenta
  108.           case 'recons', varargout{1} = wtbutils('colors','res');  % Orange
  109.         end
  110.       case {'wp2d'}
  111.         choice = varargin{2};
  112.         switch choice
  113.           case 'hist' , varargout{1} = [1 0 1];  % Magenta
  114.         end
  115.       case {'wdre'}
  116.         varargout{1} = struct( ...
  117.            'sigColor',[1 0 0],'denColor',[1 0 0],'appColor',[0 1 1], ...
  118.            'detColor',[0 1 0],'cfsColor',[0 1 0],'estColor',[1 1 0]  ...
  119.            );
  120.       otherwise
  121.         errargt(mfilename,'Unknown Option','msg');
  122.         error('*');
  123.       end
  124.         
  125.   case 'wputils'
  126.     Def_AxeFontSize = mextglob('get','Def_AxeFontSize');
  127.     type = varargin{1};
  128.     type = type(1);
  129.     if length(varargin)>1 , axe_xcol = varargin{2}; end
  130.     switch type
  131.       case 'p'
  132.         %*************************%
  133.         %** OPTION = 'plottree' **%
  134.         %*************************%
  135.         % out1 = txt_color
  136.         % out2 = lin_color
  137.         % out3 = ftn_size
  138.         %------------------------
  139.         varargout = {abs(axe_xcol-[0 0 1]),axe_xcol,Def_AxeFontSize};
  140.       case 't'
  141.         %************************%
  142.         %** OPTION = 'tree_op' **%
  143.         %************************%
  144.         % out1 = txt_color
  145.         % out2 = sel_color
  146.         % out3 = nod_color
  147.         % out4 = ftn_size
  148.         %------------------------
  149.         initMode = mextglob('get','InitMode');
  150.         varargout{1} = abs(axe_xcol-[0 0 1]);
  151.         if isequal(initMode,666)
  152.             varargout{2} = [1 0 0];
  153.             varargout{3} = wtbutils('colors','wp1d','node');
  154.         elseif axe_xcol==[1 1 1]
  155.             varargout{2} = [0 1 0];
  156.             varargout{3} = wtbutils('colors','wp1d','node');
  157.         else
  158.             varargout{2} = [1 0 0];
  159.             varargout{3} = [0.2 0.2 0.2];
  160.         end
  161.         varargout{4} = Def_AxeFontSize;
  162.       case 's'
  163.         %************************%
  164.         %** OPTION = 'ss_node' **%
  165.         %************************%
  166.         % out1 = txt_color
  167.         % out3 = pack_color
  168.         % out3 = ftn_size
  169.         %------------------------
  170.         col = wtbutils('colors','snod');
  171.         varargout = {col,col,Def_AxeFontSize};
  172.     end
  173. end