假设此处的指定文件夹为:F:\picture,处理对象是格式为.jpg的图片。代码如下:
% read image
[filename, pathname, filterindex] = uigetfile('F:\picture\*.jpg', '选择图片');
file = fullfile(pathname, filename);
img = imread(file);
figure, imshow(img);
执行代码之后,首先弹出名为“选择图片”的对话框,如下图所示:
然后选择“4.jpg”,将会弹出一个figure,显示该图像。
上述代码中用到了函数uigetfile,接下来介绍这个函数的常见用法。
函数uigetfile()
打开文件选择对话框
语法:
file = uigetfile
[file, path] = uigetfile
[file, path, index] = uigetfile
____ = uigetfile(filter)
____ = uigetfile(filter, title)
____ = uigetfile(filter, title, defname)
____ = uigetfile(____, 'MultiSelect', mode)
说明:
file = uigetfile 打开一个模态对话框,其中列出了当前文件夹中的文件。用户可以在这里选择或输入文件的名称。如果文件存在并且有效,当用户点击打开时,uigetfile将返回文件名。如果用户点击取消或窗口关闭按钮(X),uigetfile将返回0。
当用户点击打开时,[file, path] = uigetfile 将返回文件的名称和路径。如果用户点击取消或窗口关闭按钮(X),uigetfile将为两个输出参数都返回0。
当用户点击打开时,[file, path, index] = uigetfile 将返回在对话框中选择的筛选器的索引。(示例)
____ = uigetfile(filter) 指定文件扩展名,根据该扩展名筛选对话框中显示的文件。可以将此语法与上述语法中的任何输出参数结合使用。通常,只显示文件扩展名匹配的文件。在某些平台上,uigetfile 还会显示与筛选器不匹配的文件,但这些文件的文件名会灰显。如果筛选器缺失或者为空,uigetfile 将使用默认文件类型列表(例如,所有MATLAB文件)。
____ = uigetfile(filter, title) 指定对话框标题。要使用默认文件筛选器进行筛选,但指定自定义标题,请使用空引号作为筛选器值。例如:file = uigetfile(' ', 'Select a File')
____ = uigetfile(filter, title, defname) 为文件名字段指定默认文件名。
____ = uigetfile(____, 'MultiSelect', mode) 指定用户是否可以选择多个文件。将模式设置为“on”,将允许进行多选。默认情况下设置为“off”。
示例:
显示完整文件路径
显示在对话框中选择的文件的完整文件路径。使用disp和fullfile函数添加说明性文本并串联path和file的输出值。
[file, path] = uigetfile('*.m'); % 列出当前文件夹下的所有.m文件
if isequal(file, 0) % 如果file的返回值等于0
disp('User selected Cancel');
else
disp(['User selected ', fullfile(path, file)]);
end
将在命令行窗口显示User selected F:\MATLAB_code\matlab训练场\code.m
显示筛选器索引值
在命令行窗口显示选定筛选器的索引值及相关的说明性文本。使用num2str函数将数值型筛选器索引值(index)转换为字符数组。这样可使索引值成为disp函数的有效输入。
[file, path, index] = uigetfile;
if isequal(file, 0)
disp('User selected Cancel');
else
disp(['User selected ', fullfile(path, file), ' and filter index: ', num2str(index)]);
end
将在命令行窗口显示User selected H:\Documents\MyCode\peaks.fig and filter index: 3
按扩展名筛选文件
通过指定 '*.m' 作为filter输入参数,在对话框中仅显示扩展名为.m的文件。
[file, path] = uigetfile('*.m');
指定筛选器列表和对话框标题
[file, path] = uigetfile({'*.m'; '*.slx'; '*.mat'; '*.*'}, 'File Selector');
指定默认文件名
要在对话框打开时在文件名字段中显示一个默认的文件名,请将此文件名作为defname输入参数进行传递。
[file, path] = uigetfile('*.m', 'Select a m file', 'code.m');
其他内容参考matlab帮助文档。