从文件夹导入图像时的Matlab语法

时间:2016-03-09 17:01:14

标签: matlab syntax

我不太明白以下代码的第5行正在做什么。 前4行从文件夹导入图像,然后将其存储在“image1”中。然后在第5行我不知道正在做什么。

numFolder=fullfile('NumberZero/','Zero/');
for i=1:10;
    numName=sprintf('%d.bmp',i);
    image1=imread([numFolder, numName]);
    im1(:,:,i)=image1; % what is this line doing?
end

2 个答案:

答案 0 :(得分:1)

该循环只是将所有图像数据加载到名为im1的变量中。此变量的维度将为[nRows, nColumns, nImages]。这假设进入的图像实际上是灰度而不是RGB(第三维== 1)

加载完成后,您可以通过后续方法访问不同的图像。

first_image = im1(:,:,1);
second_image = im1(:,:,2);

作为旁注,建议to not use i as a loop index

答案 1 :(得分:0)

我在" MATLAB Central"上发布了这个问题。 Q& A和"图像分析师"非常好地回答了我的问题。

该行

im1(:,:,i)=image1;

获取名为image1的2D图像并将其粘贴到名为im1的3D图像的第i个切片(平面)中。如果im1已经有i个切片,那么它只会覆盖第i个切片。如果im1还没有i切片,则此代码将附加切片以在" Z"中生成3D图像。方向。因此,它将存储在磁盘上的2D图像转换为3D图像。图像1必须是灰度,才能使此代码生效。