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

あなたのコードの問題は、{'\'}ここにセル配列を入れる理由がわからないことです。単純に char を使用すると、コードが機能します。

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 に答える