发布时间 : 星期六 文章Web图像检索系统原型设计和实现更新完毕开始阅读df67fc2ba8114431b90dd898
4 界面设计及MATLAB GUI编程 本章主要介绍该系统图形界面及其gui编程实现。
4.1 用GUIDE编辑器建立图形界面
建立gui,用guide编辑器进行编辑。为了更好的实现功能,并且为用户提供
良好的用户界面,需要设计一个简洁而充实的界面,界面设计如图4-1所示。
图4-1 主界面
10
以下是该界面的初始化程序: gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Demo_OpeningFcn, ... 'gui_OutputFcn', @Demo_OutputFcn, ... 'gui_LayoutFcn', [], ... 'gui_Callback', []); if nargin == 0 % LAUNCH GUI
initial_dir = pwd;
% Open FIG-file
fig = openfig(mfilename,'reuse'); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); %disp('populate1!!'); % Populate the listbox load_listbox(initial_dir,handles)
% Return figure handle as first output argument if nargout > 0 end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard catch
disp(lasterr); end
11
varargout{1} = fig;
end 4.2
菜单条(Menu Bar)
由图4-1可知,这个主界面包含了一个菜单栏,文件(file)项,选项(option)
项,帮助(help)项。由于本系统旨在模拟实现web图像检索的基本功能,因此file以及help项并没有进行特别的制作。而option选项则是菜单栏的重点,option选项下有两个子选项,如图4-2所示。
图4-2 option子选项
Option有两个子选项,其一为input to database,该模式下实现的功能主要为将本地文件夹下的所有文件的文件名导入到一个名为database的TXT文档里。另外一个选项是search databse。这个选项所实现的功能则是整个系统的核心部分,在该模块下,可以实现将本地文件夹下与输入图片相似的十张图片按高低顺序排列呈现出来。
以下为input to database子选项的代码部分:
function inputDatabase_Callback(hObject, eventdata, handles) % hObject handle to CloseMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Some code to input the selected image to the database... set(handles.input, 'Checked', 'On'); set(handles.search, 'Checked', 'Off');
12
set(handles.listbox1, 'Enable', 'On'); set(handles.text1, 'Enable', 'On'); set(handles.popupmenu, 'Enable', 'On');
handles.option = 'input'; % This means that the option is to \ database\
guidata(hObject, handles)
以下为search database部分的程序代码:
function searchDatabase_Callback(hObject, eventdata, handles) % hObject handle to CloseMenuItem (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Some code to search the database for the selected image... set(handles.input, 'Checked', 'Off'); set(handles.search, 'Checked', 'On'); set(handles.listbox1, 'Enable', 'On'); set(handles.text1, 'Enable', 'On'); set(handles.popupmenu, 'Enable', 'On');
handles.option = 'search'; % This means that the option is to \database\
guidata(hObject, handles)
4.3 弹出框(Popupmenu)
弹出框的目的主要是为了选择图片库所在路径。弹出框如图4-3所示。
4-3 弹出框(popumenu)
以下为弹出框(popumenu)的代码部分:
13