www.gusucode.com > wavelet工具箱matlab源码程序 > wavelet/wavelet/wp2dutil.m
function wp2dutil(option,win_wptool,in3,in4) %WP2DUTIL Wavelet packets 2-D utilities. % WP2DUTIL(OPTION,WIN_WPTOOL,IN3,IN4) % M. Misiti, Y. Misiti, G. Oppenheim, J.M. Poggi 12-Mar-96. % Last Revision: 10-Jun-2013. % Copyright 1995-2013 The MathWorks, Inc. % $Revision: 1.13.4.9 $ $Date: 2013/07/05 04:30:54 $ % Default values. %---------------- max_lev_anal = 5; % Memory Blocks of stored values. %================================ % MB1 (main window). %------------------- n_param_anal = 'WP2D_Par_Anal'; ind_img_name = 1; ind_wav_name = 2; ind_lev_anal = 3; ind_ent_anal = 4; ind_ent_par = 5; ind_img_size = 6; ind_img_t_name = 7; ind_act_option = 8; % ind_thr_val = 9; % nb1_stored = 9; % MB2 (main window). %------------------- n_wp_utils = 'WP_Utils'; ind_tree_lin = 1; ind_tree_txt = 2; % ind_type_txt = 3; ind_sel_nodes = 4; ind_gra_area = 5; % ind_nb_colors = 6; % nb2_stored = 6; % Tag property of objects. %------------------------- tag_m_exp_wrks = 'm_exp_wrks'; tag_pus_anal = 'Pus_Anal'; tag_pus_deno = 'Pus_Deno'; tag_pus_comp = 'Pus_Comp'; tag_pus_btree = 'Pus_Btree'; tag_pus_blev = 'Pus_Blev'; tag_inittree = 'Pus_InitTree'; tag_wavtree = 'Pus_WavTree'; tag_curtree = 'Pop_CurTree'; tag_nodlab = 'Pop_NodLab'; tag_nodact = 'Pop_NodAct'; tag_nodsel = 'Pus_NodSel'; tag_pus_full = ['Pus_Full.1';'Pus_Full.2';'Pus_Full.3';'Pus_Full.4']; tag_axe_t_lin = 'Axe_TreeLines'; tag_axe_sig = 'Axe_Sig'; tag_axe_pack = 'Axe_Pack'; tag_axe_cfs = 'Axe_Cfs'; tag_axe_col = 'Axe_Col'; tag_sli_size = 'Sli_Size'; tag_sli_pos = 'Sli_Pos'; % Miscellaneous values. %---------------------- children = get(win_wptool,'Children'); axe_handles = findobj(children,'flat','Type','axes'); uic_handles = findobj(children,'flat','Type','uicontrol'); pop_handles = findobj(uic_handles,'Style','popupmenu'); pus_handles = findobj(uic_handles,'Style','pushbutton'); sli_handles = findobj(uic_handles,'Style','slider'); [m_files,m_save] = wfigmngr('getmenus',win_wptool,'file','save'); m_exp_wrks = findobj(m_files,'Tag',tag_m_exp_wrks); m_SAV_EXP = [m_save,m_exp_wrks]; pus_anal = findobj(pus_handles,'Tag',tag_pus_anal); pus_deno = findobj(pus_handles,'Tag',tag_pus_deno); pus_comp = findobj(pus_handles,'Tag',tag_pus_comp); pus_inittree = findobj(pus_handles,'Tag',tag_inittree); pus_wavtree = findobj(pus_handles,'Tag',tag_wavtree); pus_btree = findobj(pus_handles,'Tag',tag_pus_btree); pus_blev = findobj(pus_handles,'Tag',tag_pus_blev); pop_curtree = findobj(pop_handles,'Tag',tag_curtree); pop_nodlab = findobj(pop_handles,'Tag',tag_nodlab); pop_nodact = findobj(pop_handles,'Tag',tag_nodact); pus_full = zeros(1,4); for k =1:size(tag_pus_full,1) pus_full(k) = (findobj(pus_handles,'Tag',tag_pus_full(k,:)))'; end pus_nodsel = findobj(pus_handles,'Tag',tag_nodsel); WP_Axe_Tree = findobj(axe_handles,'flat','Tag',tag_axe_t_lin); WP_Axe_Sig = findobj(axe_handles,'flat','Tag',tag_axe_sig); WP_Axe_Pack = findobj(axe_handles,'flat','Tag',tag_axe_pack); WP_Axe_Cfs = findobj(axe_handles,'flat','Tag',tag_axe_cfs); WP_Axe_Col = findobj(axe_handles,'flat','Tag',tag_axe_col); option = lower(option); switch option case 'clean' % in3 = type of loading. %----------------------- % 'load_img' , 'load_dec' , 'demo' %---------------------------------- if nargin<4 , in4 = ''; end str_btn = getWavMSG('Wavelet:commongui:Str_Anal'); cba_btn = ['wp2dmngr(''anal'',' handle2str(win_wptool) ');']; set(pus_anal,'String',str_btn,'Callback',cba_btn); % Testing first use. %------------------- active_option = wmemtool('rmb',win_wptool,n_param_anal, ... ind_act_option); if isempty(active_option) , first = 1; else first = 0; end % End of Cleaning when first is true. %------------------------------------ if first , return; end % Setting enable property of objects. %------------------------------------ set(m_SAV_EXP,'Enable','Off'); cbanapar('Enable',win_wptool,'off'); utentpar('Enable',win_wptool,'off'); set([pus_anal, pus_deno, pus_comp, ... pus_inittree, pus_wavtree, ... pus_btree, pus_blev, pop_curtree, ... pop_nodlab, pop_nodact, pus_nodsel, ... pus_full ... ],... 'Enable','off'... ); % Cleaning DynVTool. %------------------- dynvtool('stop',win_wptool); % Cleaning Axes. %-------------- wpfullsi('clean',win_wptool); axe_hld = [WP_Axe_Tree,WP_Axe_Cfs, WP_Axe_Pack]; if ~strcmp(in4,'new_anal') axe_hld = [axe_hld , WP_Axe_Sig, WP_Axe_Col]; cleanaxe(axe_hld); else titl = get(WP_Axe_Cfs,'title'); strtitl = get(titl,'String'); cleanaxe(axe_hld); wtitle(strtitl,'Parent',WP_Axe_Cfs,'Visible','on'); end wmemtool('wmb',win_wptool,n_wp_utils,... ind_tree_lin,[],ind_tree_txt,[],ind_sel_nodes,[]); % Cleaning GUI. %-------------- set(pop_nodlab,'Value',1,'UserData',1); set(pop_nodact,'Value',1,'UserData',1); if ~strcmp(in4,'new_anal') str_lev_data = int2str((1:max_lev_anal)'); cbanapar('set',win_wptool,... 'nam','', ... 'wav','haar', ... 'lev',{'String',str_lev_data,'Value',1}); utentpar('clean',win_wptool); end case 'set_gui' % in3 = calling option. % in4 optional (new_anal). %----------------------------- switch in3 case 'load_img' [Img_Name,Img_Size,Img_True_Name] = ... wmemtool('rmb',win_wptool,n_param_anal,... ind_img_name,ind_img_size, ... ind_img_t_name); levm = wmaxlev(Img_Size(1:2),'haar'); levmax = min(levm,max_lev_anal); str_lev_data = int2str((1:levmax)'); if isequal(Img_True_Name,'X') imgName = Img_Name; else imgName = Img_True_Name; end cbanapar('set',win_wptool,... 'n_s',{imgName,Img_Size}, ... 'lev',{'String',str_lev_data,'Value',min(levmax,2)}); case {'demo','load_dec'} [Img_Name,Img_Size,Wave_Name,Level_Anal,... Ent_Name,Ent_Par,Img_True_Name] = ... wmemtool('rmb',win_wptool,n_param_anal, ... ind_img_name,ind_img_size,... ind_wav_name,ind_lev_anal,... ind_ent_anal,ind_ent_par, ... ind_img_t_name); levm = wmaxlev(Img_Size,'haar'); levmax = min(levm,max_lev_anal); str_lev_data = int2str((1:levmax)'); if isequal(Img_True_Name,'X') imgName = Img_Name; else imgName = Img_True_Name; end cbanapar('set',win_wptool,... 'n_s',{imgName,Img_Size}, ... 'wav',Wave_Name, ... 'lev',{'String',str_lev_data,'Value',Level_Anal}); utentpar('set',win_wptool,'ent',{Ent_Name,Ent_Par}); case 'anal' end switch in3 case {'load_img','demo','load_dec'} pos_g = wmemtool('rmb',win_wptool,n_wp_utils,ind_gra_area); [ pos_axe_pack, pos_axe_tree, pos_axe_cfs, ... pos_axe_sig, pos_sli_size, pos_sli_pos, ... pos_axe_col] = wpposaxe(win_wptool,2,pos_g,Img_Size); %#ok<NASGU> WP_Slider_Size = findobj(sli_handles,'Tag',tag_sli_size); WP_Slider_Pos = findobj(sli_handles,'Tag',tag_sli_pos); set(WP_Axe_Tree,'Position',pos_axe_tree); set(WP_Slider_Size,'Position',pos_sli_size); set(WP_Slider_Pos,'Position',pos_sli_pos); set(WP_Axe_Sig,'Position',pos_axe_sig); set(WP_Axe_Pack,'Position',pos_axe_pack); set(WP_Axe_Cfs,'Position',pos_axe_cfs); % To manage colormap tool for truecolor images if length(Img_Size)<3 vis_UTCOLMAP = 'On'; else vis_UTCOLMAP = 'Off'; end cbcolmap('Visible',win_wptool,vis_UTCOLMAP); set(wfindobj(WP_Axe_Col),'Visible',vis_UTCOLMAP); wtbxappdata('set',win_wptool,'vis_UTCOLMAP',vis_UTCOLMAP); end case 'enable' % in3 = calling option. %---------------------- switch in3 case {'load_img','demo','load_dec'} cbanapar('Enable',win_wptool,'on'); utentpar('Enable',win_wptool,'on'); set(pus_anal,'Enable','On'); end switch in3 case {'demo','load_dec','anal','synt'} cbcolmap('Enable',win_wptool,'on'); set([pus_deno, pus_comp, pus_btree, ... pus_blev, pus_inittree, pus_wavtree,... pop_curtree, pop_nodlab, pop_nodact, ... pus_nodsel, pus_full, ... ], ... 'Enable','on'... ); set(m_SAV_EXP,'Enable','on'); case {'comp','deno'} set([m_files , pus_anal , pus_deno , pus_comp],'Enable','off'); case {'return_comp','return_deno'} set([m_files , pus_anal , pus_deno , pus_comp],'Enable','on'); end otherwise errargt(mfilename,getWavMSG('Wavelet:moreMSGRF:Unknown_Opt'),'msg'); error(message('Wavelet:FunctionArgVal:Invalid_ArgVal')); end