MATLAB中uigetfile函数使用方法
函数原型
标准化打开选择文件对话框:
function [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
参数
FileName:返回的文件名
PathName:返回的文件的路径名
FilterIndex:选择的文件类型
FilterSpec:文件类型设置
DialogTitle:打开对话框的标题
DefaultName:默认指向的文件名
使用方法
1.最简单的形式,只设置了一种可选择的文件类型
[FileName,PathName] = uigetfile('*.m','Select the M-file');
2.设置多种文件类型
[filename, pathname] = uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');
3.可以为文件类型设置说明,注意书写格式
[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl','MATLAB Files (*.m,*.fig,*.mat,*.mdl)';
'*.m', 'M-files (*.m)'; ...
'*.fig','Figures (*.fig)'; ...
'*.mat','MAT-files (*.mat)'; ...
'*.mdl','Models (*.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file');
4.可返回选择的文件类型序号,并且可以设置文件多选,设置文件多选时注意,当只选了一个文件时,返回的filename为字符串,选择多个文件时,返回的元胞类型。
[filename, pathname, filterindex] = uigetfile( ...
{ '*.mat','MAT-files (*.mat)'; ...
'*.mdl','Models (*.mdl)'; ...
'*.*', 'All Files (*.*)'}, ...
'Pick a file', ...
'MultiSelect', 'on');
5.可以设置默认文件名
[filename, pathname] = uigetfile( ...
{ '*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },'mytitle',...
'/home/username/Pictures/image.jpg');
6.一点小技巧
当返回了一个文件的时候,可以用fullfile将路径和文件名组合起来,如
[filename, pathname] = uigetfile('*.m', 'Pick an M-file'); if isequal(filename,0) disp('User selected Cancel') else disp(['User selected', fullfile(pathname, filename)]) end
例子1:打开图像
clear;
[filename, pathname] = uigetfile( '*.bmp', 'Read an image file' )
img = imread( [pathname, filename] );
imshow(img);
例子2:缩放图像
%修改图片的大小
%%
clc
clear all
close all
%%
scale=inputdlg('Scale','Input the scale',1,{'0.5'});
%%
[filename, pathname] = uigetfile( ...
{'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },...
'Select the images(Multi-Select)', ...
'MultiSelect', 'on');
%%
if ~iscell(filename)
filename1{1}=filename;
else
filename1=filename;
end
%%
for i=1:length(filename1)
image=imread(strcat(pathname,filename1{i}));
image_resize=imresize(image,eval(scale{1}));
imwrite(image_resize,strcat(pathname,datestr(now, 'mmddHH'),filename1{i}));
end