我正在尝试访问matlab接口中的图像我的代码如下:
global im2 im
axes(handles.axes4);
[path1, user_cance]= imgetfile();
if user_cance
msgbox(sprintf('Error'), 'Error', 'Error');
return
end
srcFiles = dir('C:UsersUserDesktopimages testyale facesyalefaces..');
% yale faces is the database folder
for i = 1 : length(srcFiles)
file_name=dir(strcat('C:UsersUserDesktopimages testyale facesyalefaces'));
im2=imread(strcat('C:UsersUserDesktopimages testyale facesyalefaces',file_name(i).name));
%processing of read image
end
问题是,当我运行代码时,它会产生以下错误:
无法打开文件" c: users user user desktop images test yale faces yalefaces" 阅读; 您可能没有阅读许可。
有人知道如何解决这个问题吗?
进行目录列表(无通配符)时,您将获得当前目录'.'
和Parent Directory以及'..'
。您无法阅读这些类似文件,因为它们是目录。您需要在尝试使用IMRead读取目录之前过滤这些目录。
files = dir('C:UsersUserDesktopimages testyale facesyalefaces');
% Remove directories
files = files(~[files.isdir]);
作为附带说明,很难说出您的代码在做什么,但是我敢肯定它不会做您希望的。
似乎您想在数据库中获取所有图像。如果是这样,您需要做类似的事情。
folder = 'C:UsersUserDesktopimages testyale facesyalefaces';
% Get a list of all files in this folder
files = dir(folder);
files = files(~[files.isdir]);
for k = 1:numel(files)
% Append the folder with the filename to get the path and load
im2 = imread(fullfile(folder, files(k).name));
end
我高度劝阻使用strcat
来构建文件路径,尤其是因为它从每个输入中删除了可能损坏文件名的尾随/领先空间。fullfile
是为此而设计的,因此请使用。