gusucode.com > 配准结果检验程序 gobad.m对图像进行“平移”和“旋转” > peizhun/testListBoxlj.m
function varargout = testListBoxlj(varargin) % TESTLISTBOXLJ M-file for testListBoxlj.fig % TESTLISTBOXLJ, by itself, creates a new TESTLISTBOXLJ or raises the existing % singleton*. % % H = TESTLISTBOXLJ returns the handle to a new TESTLISTBOXLJ or the handle to % the existing singleton*. % % TESTLISTBOXLJ('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in TESTLISTBOXLJ.M with the given input arguments. % % TESTLISTBOXLJ('Property','Value',...) creates a new TESTLISTBOXLJ or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before testListBoxlj_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to testListBoxlj_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help testListBoxlj % Last Modified by GUIDE v2.5 19-Sep-2005 10:36:50 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @testListBoxlj_OpeningFcn, ... 'gui_OutputFcn', @testListBoxlj_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before testListBoxlj is made visible. function testListBoxlj_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to testListBoxlj (see VARARGIN) % Choose default command line output for testListBoxlj %%%%%%%%%%%记得解除 handles.output = hObject; % Update handles structure guidata(hObject, handles); % if nargin == 3, % initial_dir = pwd; % elseif nargin > 4 % if strcmpi(varargin{1},'dir') % if exist(varargin{2},'dir') % initial_dir = varargin{2}; % else % errordlg('Input argument must be a valid directory','Input Argument Error!') % return % end % else % errordlg('Unrecognized input argument','Input Argument Error!'); % return; % end % end initial_dir = pwd; ss=load_listbox(initial_dir,handles); handles.ss=ss; % UIWAIT makes testListBoxlj wait for user response (see UIRESUME) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % add by lijing % handles.parhandles=varargin{1}; guidata(handles.figure1, handles); % while handles.ss.IsImage==0 uiwait(handles.figure1); %%%%%%%只有在这里加才不会出错 % handles.figure1 % handles.ss.IsImage % end % --- Outputs from this function are returned to the command line. function varargout = testListBoxlj_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure % varargout{1} = handles.output; varargout{1} = handles; % delete(handles.figure1)%%%%%%%%%% % --- Executes during object creation, after setting all properties. function listbox1_CreateFcn(hObject, eventdata, handles) % hObject handle to listbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on selection change in listbox1. function listbox1_Callback(hObject, eventdata, handles) % hObject handle to listbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % get(handles.figure1,'SelectionType'); index_selected = get(handles.listbox1,'Value'); % file_list = get(handles.listbox1,'String'); %%%%%%%%%%%%大问题%%%%%%%%%%%%%%%%%%%%%%% filename = handles.ss.sorted_names{index_selected}; handles.ss.filename=[pwd,'\',filename]; handles.ss.names_disp=handles.ss.sorted_names_disp{index_selected}; handles.ss.imsize=handles.ss.imsize_disp{index_selected}; % (返回) % handles.ss.f=handles.figure1 if index_selected<=handles.ss.cnPiont cd(handles.ss.filename) ss=load_listbox(pwd,handles); handles.ss=ss; handles.ss.IsImage=0; % 返回一个‘文件’或‘图片’的记录 % filename = handles.ss.sorted_names{index_selected}; % handles.ss.filename=[pwd,'\',filename]; % handles.ss.names_disp=handles.ss.sorted_names_disp{index_selected}; % handles.ss.imsize=handles.ss.imsize_disp{index_selected}; % (返回) else handles.ss.IsImage=1; % (返回) end %%%%%%%%%%%% guidata(handles.figure1, handles); uiresume(handles.figure1);%%%%%%%只有在这里加才不会出错 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function ss=load_listbox(dir_path,handles) cd (dir_path) dir_struct = dir(dir_path); [sorted_names1,sorted_index1] = sortrows({dir_struct.name}'); k=max(sorted_index1); if k==2 sorted_names{1}='.'; sorted_names{2}='..'; sorted_names_disp{1}='.'; sorted_names_disp{2}='..'; imsize_disp{1}='null'; imsize_disp{2}='null'; cnPiont=2; else sorted_names{1}='.'; sorted_names{2}='..'; sorted_names_disp{1}='.'; sorted_names_disp{2}='..'; imsize_disp{1}='null'; imsize_disp{2}='null'; cn=2; %%%%%% 找文件夹 for i=1:k [path,name,ext,ver] = fileparts(sorted_names1{i}); switch ext case '' cn=cn+1; cnarray(cn)=cn; %sorted_names(cn)=name; sorted_names{cn}=name; sorted_names_disp{cn}=name; %name imsize_disp{cn}='null'; end end cnPiont=cn; % guidata(handles.figure1,handles) %%%%%% 找图片 for i=1:k [path,name,ext,ver] = fileparts(sorted_names1{i}); switch ext case {'.bmp','.jpg','.jpeg','.tif'} cn=cn+1; cnarray(cn)=cn; %sorted_names(cn)=name; name=[name,ext]; sorted_names{cn}=name; temp=imread(name); [m,n]=size(temp); m=num2str(m); n=num2str(n); imsize=[' ',m,'*',n,' (size)']; %%% 要返回 name_disp=[name,imsize]; sorted_names_disp{cn}=name_disp; imsize_disp{cn}=imsize; %name end end end ss.sorted_names=sorted_names; %%% 要返回 ss.sorted_names_disp=sorted_names_disp; %%% 要返回 ss.imsize_disp=imsize_disp; ss.cnPiont=cnPiont; %%% 要返回 % % handles.file_names = sorted_names; % handles.file_names =sorted_names_disp; % handles.is_dir = [dir_struct.isdir]; % %handles.sorted_index = [sorted_index]; % handles.sorted_index = [cnarray]; set(handles.listbox1,'String',sorted_names_disp,... 'Value',1) set(handles.text1,'String',pwd)