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

波变换

开发平台:

Matlab

  1. function varargout = dguidw2d(varargin)
  2. %DGUIDW2D Demonstrates discrete 2-D wavelet GUI tools in the Wavelet Toolbox.
  3. %
  4. % This is a slideshow file for use with wshowdrv.m
  5. % To see it run, type 'wshowdrv dguidw2d', 
  6. %   
  7. %   See also DWT2, IDWT2, WAVEDEC2, WAVEREC2.
  8. %   M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96.
  9. %   Last Revision: 03-Feb-2003.
  10. %   Copyright 1995-2004 The MathWorks, Inc.
  11. % $Revision: 1.13.4.2 $
  12. % Initialization and Local functions if necessary.
  13. if nargin>0
  14. action = varargin{1};
  15. switch action
  16.   case 'auto'    , wshowdrv('#autoMode',mfilename,'close');
  17.   case 'gr_auto' , wshowdrv('#gr_autoMode',mfilename,'close');
  18.   case 'getFigParam'
  19. figName  = 'Wavelet GUI Demo: Wavelet 2-D';
  20. showType = 'command';
  21. varargout = {figName,showType};
  22.   case 'slidePROC_Init'
  23. figHandle = varargin{2};
  24.     localPARAM = wtbxappdata('get',figHandle,'localPARAM');
  25.     if ~isempty(localPARAM)
  26.    active_fig = localPARAM{1};
  27.    delete(active_fig);
  28.        wtbxappdata('del',figHandle,'localPARAM');
  29.     end
  30. case 'slidePROC'
  31. [figHandle,idxSlide]  = deal(varargin{2:end});
  32. idxPREV = wshowdrv('#get_idxSlide',figHandle);
  33.     localPARAM = wtbxappdata('get',figHandle,'localPARAM');
  34. if idxSlide==2
  35. if isempty(localPARAM)
  36. active_fig = dw2dtool;
  37. dw2dmngr('demo',active_fig,'woman2','sym4',2);
  38. wenamngr('Inactive',active_fig);
  39. tag_pop_declev  = 'Pop_DecLev';
  40. tag_pop_viewm   = 'Pop_ViewM';
  41. tag_pus_full    = strvcat(...
  42. 'Pus_Full.1','Pus_Full.2',...
  43. 'Pus_Full.3','Pus_Full.4'...
  44. );
  45. pop_handles     = findobj(active_fig,'style','popupmenu');
  46. pus_handles     = findobj(active_fig,'style','pushbutton');
  47. pop_viewm       = findobj(pop_handles,'tag',tag_pop_viewm);
  48. pop_decm        = findobj(pop_handles,'tag',tag_pop_declev);
  49. pus_full        = findobj(pus_handles,'tag',tag_pus_full(4,:));
  50. cba_viewm       = get(pop_viewm,'Callback');
  51. cba_decm        = get(pop_decm,'Callback');
  52. cba_full        = get(pus_full,'Callback');
  53. figTMP          = [];
  54. localPARAM = {active_fig,pop_viewm,cba_viewm,pop_decm,cba_decm,cba_full,figTMP};
  55. wtbxappdata('set',figHandle,'localPARAM',localPARAM);
  56. wshowdrv('#modify_cbClose',figHandle,active_fig,'dw2dtool');
  57. else
  58. [active_fig,pop_viewm,cba_viewm,pop_decm,cba_decm,cba_full,figTMP] = deal(localPARAM{:});
  59. set(pop_viewm,'value',1);
  60. eval(cba_viewm);
  61. end
  62. return
  63. end
  64. [active_fig,pop_viewm,cba_viewm,pop_decm,cba_decm,cba_full,figTMP] = deal(localPARAM{:});
  65. switch idxSlide
  66.   case 3
  67.   msg = strvcat(...
  68.   'The present View mode is Square mode.', ...
  69.   ['To change the Display mode use the corresponding popupmenu ' ...
  70.   'in the middle of the window.'],...
  71.   'Two view modes are available.'...
  72.   );
  73.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  74.   msg = ['We select the Tree Mode.'];
  75.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  76.   set(pop_viewm,'value',2);
  77.   eval(cba_viewm);
  78.   case 4
  79.   if idxPREV<idxSlide
  80.   msg = ['We go back to the Square mode.'];
  81.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  82.   set(pop_viewm,'value',1);
  83.   eval(cba_viewm);
  84.   else
  85.   eval(cba_full);
  86.   end
  87.   case 5
  88.   if idxPREV<idxSlide
  89.   msg = strvcat(...
  90.   'The four pushbuttons labelled [1 2 3 4] in the middle of the window', ...
  91.   'allow to see Full Size for one of the four axes.', ...
  92.   'Let''s display the decomposition (button 4) Full Size.' ...
  93.   );
  94.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  95.   eval(cba_full);
  96.   else
  97.   set(pop_decm,'value',2);
  98.   eval(cba_decm);
  99.   end
  100.   
  101.   case 6
  102.   if idxPREV<idxSlide
  103.   msg = ['We select the decomposition at level 1.'];
  104.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  105.   set(pop_decm,'value',1);
  106.   eval(cba_decm);
  107.   else
  108.   eval(cba_full);
  109.   end
  110.   
  111.   case 7
  112.   if idxPREV<idxSlide
  113.   msg = ['We go back to the Square mode.'];
  114.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  115.   eval(cba_full);
  116.   else
  117.   set(pop_decm,'value',1);
  118.   eval(cba_decm);
  119.   end
  120.   
  121.   case 8
  122.   if idxPREV<idxSlide
  123.   msg = ['We restore the decomposition at level 2.'];
  124.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  125.   set(pop_decm,'value',2);
  126.   eval(cba_decm);
  127.   else
  128.   delete(figTMP);  modify_localPARAM(figHandle,localPARAM,[]);
  129.   end
  130.   case 9
  131.   if idxPREV<idxSlide
  132.   msg = 'The Compress pushbutton is used to call the compression tool.';
  133.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  134.   figTMP = dw2dmngr('comp',active_fig);
  135.   modify_localPARAM(figHandle,localPARAM,figTMP);
  136.   wenamngr('Inactive',figTMP);
  137.   msg = 'We compress the image with the default options.';
  138.   wshowdrv('#gui_wait',figHandle,figTMP,msg); 
  139.   dw2dcomp('compress',figTMP,active_fig);
  140.   else
  141.   delete(figTMP);  modify_localPARAM(figHandle,localPARAM,[]);
  142.   end
  143.   
  144.   case 10
  145.   delete(figTMP);  modify_localPARAM(figHandle,localPARAM,[]);
  146.   pause(2)
  147.   dw2dmngr('return_comp',active_fig,0);
  148.   wenamngr('Inactive',active_fig);
  149.   msg = 'The De-noise pushbutton is used to call the de-noising tool.';
  150.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  151.   figTMP = dw2dmngr('deno',active_fig);
  152.   modify_localPARAM(figHandle,localPARAM,figTMP);
  153.   wenamngr('Inactive',figTMP);
  154.   msg = 'We de-noise the image with the default options.';
  155.   wshowdrv('#gui_wait',figHandle,figTMP,msg); 
  156.   dw2ddeno('denoise',figTMP,active_fig);
  157.   case 11
  158.   delete(figTMP);  modify_localPARAM(figHandle,localPARAM,[]);
  159.   pause(2)
  160.   dw2dmngr('return_deno',active_fig,0);
  161.   wenamngr('Inactive',active_fig);
  162.   msg = 'The Statistics pushbutton is used to call the statistics tool.';
  163.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  164.   figTMP = dw2dmngr('stat',active_fig);
  165.   modify_localPARAM(figHandle,localPARAM,figTMP);
  166.   dw2dstat('demo',figTMP);
  167.   wenamngr('Inactive',figTMP);
  168.   case 12
  169.   delete(figTMP);  modify_localPARAM(figHandle,localPARAM,[]);
  170.   msg = 'The Histograms pushbutton is used to call the histograms tool.';
  171.   wshowdrv('#gui_wait',figHandle,active_fig,msg); 
  172.   figTMP = dw2dmngr('hist',active_fig);
  173.   modify_localPARAM(figHandle,localPARAM,figTMP);
  174.   dw2dhist('demo',figTMP);
  175.   wenamngr('Inactive',figTMP);
  176.   case 13
  177.   delete(figTMP); modify_localPARAM(figHandle,localPARAM,[]);
  178.   pause(2)
  179.   
  180. end
  181. end
  182. return
  183. end
  184. if nargout<1,
  185.   wshowdrv(mfilename)
  186. else
  187.   idx = 0; slide(1).code = {}; slide(1).text = {};
  188.   
  189.   %========== Slide 1 ==========
  190.   idx = idx+1;
  191.   slide(idx).code = {
  192.   'figHandle = gcf;',
  193.   [mfilename ,'(''slidePROC_Init'',figHandle);'],
  194.   '' };
  195.   %========== Slide 2 to Slide 13 ==========
  196.   for idx = 2:13
  197.     slide(idx).code = {[mfilename ,'(''slidePROC'',figHandle,',int2str(idx),');']};
  198.   end
  199.   
  200.   varargout{1} = slide;
  201.   
  202. end
  203. %------------------------------------------------------------------------------------------%
  204. function modify_localPARAM(figHandle,localPARAM,figTMP)
  205. localPARAM{end} = figTMP;
  206. wtbxappdata('set',figHandle,'localPARAM',localPARAM);    
  207. %------------------------------------------------------------------------------------------%