我想读取 Scilab 文件夹中的多个图像。我的代码是:
I1=dir('G:\SCI\FRAME\*.jpg');
n=length(I1);
disp(n);
for i=1:n
I2=strcat('G:\SCI\FRAME\',I1(i).name);
I=imread(I2);
figure(),imshow(I);
end
但它不起作用。它显示错误“无效索引”。
有两个错误需要纠正:
1.)length给出字符串的字符数(=长度),但您想获取向量(文件名)中的元素数(=大小),因此您应该使用size.
2.) I1 是由 . 返回的列表结构dir。您可以使用运算符提取其内容.,例如I1.name, I1.date, I1.bytes, I1.isdir。将这些输入控制台,查看内容!由于I1.name已经包含完整路径+文件名+扩展名作为字符串向量,因此您不必使用strcat. 无论如何,如果您想将 2 个字符串“粘合”在一起,则使用起来更容易,+例如S="fisrst_string"+"second_string". 所以修改后的代码:
I1=dir('G:\SCI\FRAME\*.jpg');
n=size(I1.name,"*"); //size of the I1.name vector
disp(n);
for i=1:n
I=imread(I1.name(i)); //I1.name is a string vector
figure();
imshow(I);
end