读取 Scilab 文件夹中的多个图像

Reading multiple images which are in a folder in Scilab

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

但是不行。它显示错误 "invalid index"。

有两个错误需要更正:

1.) length 给出一个字符串的字符数(=长度),但是你想得到一个向量(文件名)中的元素数(=大小),因此你应该使用 size.

2.) I1是dir返回的列表结构。您可以使用 . 运算符提取其内容,例如I1.nameI1.dateI1.bytesI1.isdir。将这些输入控制台,查看内容!由于 I1.name 已经包含作为字符串向量的完整路径+文件名+扩展名,因此您不必使用 strcat 构造它。无论如何,如果你想 "glue" 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