2011-11-28 136 views
0

我从一个目录中逐一读取图像,我希望创建一个图像数组并传递给处理这些图像的mexFunction。到目前为止我所尝试的是不起作用的。让说我有100张图片256×256,当我做如何在matlab中创建一个图像阵列

directory = uigetdir; fileList = dir(directory); imageVolume= []; 

for idx = 3:numel(fileList) 

    tempImage = imread(fullfile(directory, fileList(idx).name)); 
    imageVolume= [imageVolume tempImage]; 
end 

每当我这样做,我不明白的256x256xn一个数组,而不是我只是得到256X(256 * N)的图像,这是不是有什么我想要。任何想法?

回答

1

使用单元格阵列作为@bjornsen建议的作品。如果你宁愿不使用电池阵列,可以使用3个维矩阵:

imageVolume(:,:,idx) = tempImage; 

您必须确保,虽然,所有图像大小相同。否则,你最好使用单元阵列。

+0

正是我在找的东西,谢谢。 – DogDog

+0

是的,但第三维是图像RGB通道,不是吗? – albert

2

使用单元阵列。假设您的其他代码是正确的:

for idx = 3:numel(fileList) 
    tempImage{idx} = imread(fullfile(directory, fileList(idx).name)); 
end