如何在matlab中创建一个由多个3d imagedata数组组成的数组

时间:2014-11-13 06:45:01

标签: arrays matlab multidimensional-array

我正在使用imagedata = imread('imagename.jpg')阅读15张图片,其尺寸始终为320 by 320 by 3

如何将数据放入数组(使用for for循环),这样当我访问新数组的第一个元素时,我得到我输入的第一个图像的RGB数据?

2 个答案:

答案 0 :(得分:3)

您应该使用cell

imCell = {};
for i = 1 :15
    imCell{i} = imread(num2str(something));
end

您可以轻松访问,

for j = 1 : 15
    subplot(5,3,j);
    imshow(imCell{j});
end

imCell是一个大小为1x15的单元格。但是imCell{i}是一个大小为320x320x3的arrey。

使用单元格甚至可以保存不同大小的数组。

答案 1 :(得分:2)

由于所有图像都具有相同的大小,因此使用4D阵列比使用单元阵列更有效:

imArray = NaN(320,320,3,15);
for n = 1:15
    imArray(:,:,:,n) = imread(filename); %// filename should probably change
end

然后,您可以将第一张图片作为imArray(:,:,:,1)等访问