我不太明白以下代码的第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
答案 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必须是灰度,才能使此代码生效。