0

我正在尝试imread在文件夹中的所有图像上运行。我已经完成了这项任务,但是有一个错误表明我的参数不是字符串。

h_path = 'C:\Users\john\Matlab\train';
dirlist = dir('*.jpg');

for i = 1:length(dirlist)
    f_path = strcat(h_path,{'\'},dirlist(i).name);
    disp(f_path);
    I = imread(f_path); 

错误发生在最后一行。此外,该disp函数打印出我的路径,没有任何错误。

4

1 回答 1

1

你的代码的问题是{'\'},不知道为什么你把一个单元格数组放在这里。只需使用一个字符,你的代码就可以工作:

for i = 1:length(dirlist)
   f_path = strcat(h_path,'\',dirlist(i).name);
   disp(f_path);
   I = imread(f_path); 
end

正如 Oleg 已经提到的,使用 是更好的做法fullfile,它独立于平台并避免重复文件分隔符的问题。

for i = 1:length(dirlist)
   f_path = fullfile(h_path,dirlist(i).name);
   disp(f_path);
   I = imread(f_path); 
end
于 2016-02-14T18:05:49.257 回答