如何在matlab中创建图像数组

时间:2011-11-28 03:39:38

标签: matlab

我从一个目录中逐个读取图像,我希望创建一个图像数组,然后传递给处理这些图像的mexFunction。到目前为止我尝试的是不行。假设我有100张图像256x256

 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)的图像,这不是我想要的。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

使用Cell Arrays。假设你的其余代码是正确的:

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

答案 1 :(得分:1)

使用@bjornsen建议的单元格数组。如果您不想使用单元格数组,则可以使用3维矩阵:

imageVolume(:,:,idx) = tempImage;

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