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

波变换

开发平台:

Matlab

  1. function out1 = wimgcode(option,in2,in3,in4,in5,in6)
  2. %WIMGCODE Image coding mode.
  3. %   OUT1 = WIMGCODE(OPTION,IN2,IN3,IN4,IN5,IN6)
  4.               
  5. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  6. %   Last Revision: 07-May-2003.
  7. %   Copyright 1995-2004 The MathWorks, Inc.
  8. % $Revision: 1.12.4.2 $
  9. switch option
  10.     case 'get' , 
  11. if nargin==1
  12. out1 = 1;
  13. else
  14. out1 = wfigmngr('get_CCM_Menu',in2);
  15. end
  16.     case 'cod'
  17.       % in2 = flag for coding
  18.       % in3 = matrix to encode
  19.       % in4 = number of class
  20.       % in5 = flag absolute value
  21.       % in6 = optional (trunc parameters)
  22.       %   in6(1)   = lev;
  23.       %   in6(2:3) = size init
  24.       %----------------------------------
  25.       if in2==0
  26.           out1 = in3;
  27.       else
  28.           nb      = in4;
  29.           [t1,t2] = size(in3);
  30.           out1    = ones(t1,t2);
  31.           if in5==1 , in3 = abs(in3); end
  32.           in3  = in3-min(min(in3));
  33.           maxx = max(max(in3));
  34.           if maxx>=sqrt(eps)
  35.               mul  = nb/maxx;
  36.               out1 = reshape(fix(1 + mul*in3),t1,t2);
  37.               out1(out1>nb) = nb;
  38.           end
  39.       end
  40.       if nargin==6
  41.           lev = in6(1);
  42.           if lev==0 , return; end
  43.           sx = in6(2:3);
  44.           for k = 1:lev , sx = floor((sx+1)/2); end
  45.           out1 = wkeep2(out1,sx);
  46.       end
  47. end