Matlab GUI常用函数总结
% — 文件的打开、读取和关闭
% — 文件的保存
% — 创建一个进度条
% — 在名为display的axes显示图像,然后关闭
% — 把数字转化为时间格式
% — checkbox的callback函数
% — 图像识别处理相关的两个函数
% — 点击图像,调用函数
% — montage
% --- 文件的打开、读取和关闭 --- try [FileName,PathName] = uigetfile(\'*.raw\',\'Select an image file\'); FID = fopen(strcat(PathName,FileName)); readNum = 100000; fseek(FID, 0,\'bof\'); [data,length] = fread(FID,readNum, \'int16\'); fclose(FID); catch err warning = msgbox(\'Fail to open file.\',\'Warning\',\'warn\'); fclose(FID); end % --- 文件的保存 --- [file,path] = uiputfile(\'*.mat\',\'Save Mask As\'); save(strcat(path,file),\'mask\'); % --- 创建一个进度条 --- wait = waitbar(0.1,\'Loading data from disk...\'); waitbar(0.2,wait); waitbar(1.0,wait); close(wait); % --- 在名为display的axes显示图像,然后关闭 --- img = imagesc(data, \'Parent\',handles.display); close img; % --- 把数字转化为时间格式 --- function str = convertTime(time) sec = num2str(mod(time,60000)/1000,\'%6.3f\n\'); min = num2str(floor(time/60000)); str = strcat(min,\':\',sec); % --- checkbox的callback函数 --- checked = get(handles.checkbox,\'Value\'); if(checked) %已选中,将方框打钩 set(handles.checkbox,\'Value\',1); else %未选中,方框的钩去除 set(handles.checkbox,\'Value\',0); end % --- 图像识别处理相关的两个函数 --- % 图像pic一般是二值图像 se = strel(\'ball\',6,6); %erode image pic = imerode(pic,se); %dilate image pic = imdilate(pic,se); % --- 点击图像,调用函数 --- img = imagesc(data, \'Parent\',handles.display); %点击图像区域,触发该图像的ButtonDownFcn函数,执行adjustMask()函数 set(img,\'ButtonDownFcn\',{@adjustMask}); %adjustMask函数定义 function adjustMask(hObject, eventdata) handles= guidata(hObject); ... % --- Montage function usage --- fileFolder = \'C:\ZHYH\CV\PrtScn\'; dirOutput = dir(fullfile(fileFolder,\'AP_m*.jpg\')); fileNames = {dirOutput.name}\'; montage(fileNames);
新窗口初始化的内容放在OpeningFcn(hObject, eventdata, handles, varargin)的结尾,不会报错。
巧妙地使用按键的‘Enable’属性,可以有效避免误操作引起的麻烦。
设置一些必要的bool类型的标记,表示程序的运行状态。
在一个窗口window打开新的窗口new_window,可以新建一个new_window的.fig和.m的文件,然后在window的代码中直接调用new_window()函数。