我想读取 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