我需要在Matlab(2013b)的预定义目录的子目录中导入多个图像(10.000)。
我不知道图像的确切名称。
我试过了:
file = dir('C:\Users\user\Documents\MATLAB\train');
NF = length(file);
for k = 1 : NF
img = imread(fullfile('C:\Users\user\Documents\MATLAB\train', file(k).name));
end
但是,尽管我使用管理员权限运行它,但它会抛出此错误:
Error using imread (line 347)
Can't open file "C:\Users\user\Documents\MATLAB\train\." for reading;
you may not have read permission.
答案 0 :(得分:2)
检查目录的输出。前两个“文件”是.
和..
,类似于windows dir命令的行为。
file = dir('C:\Users\user\Documents\MATLAB\train');
NF = length(file);
for k = 3 : NF
img = imread(fullfile('C:\Users\user\Documents\MATLAB\train', file(k).name));
end
答案 1 :(得分:2)
“dir”命令返回虚拟目录元素“。” (自我目录)和“..”父级,如您的错误消息所示。
一个简单的解决方法是根据您的图片类型使用更具体的dir
来电:
file = dir('C:\Users\user\Documents\MATLAB\train\*.jpg');
答案 2 :(得分:0)
在R2013b中你必须这样做
file = dir('C:\Users\user\Documents\MATLAB\train\*.jpg');
如果您的R2014b配有计算机视觉系统工具箱,那么您可以使用imageSet:
images = imageSet('C:\Users\user\Documents\MATLAB\train\');
这将创建一个对象,其中包含train
目录中所有图像文件的路径,无论格式如何。然后你可以这样阅读i
- 图像:
im = read(images, i);