如何在MATLAB中加载和存储一堆图像

时间:2011-10-18 13:31:08

标签: arrays image matlab multidimensional-array

我正在尝试在MATLAB中完成我的第一个项目,到目前为止,我尝试从一个目录中加载一系列图像,然后将它们存储在一个对象中

图像很小并且它们很少< 100,所以记忆不是问题。

我会将它们最佳地存储在 3维数组中,但我不知道该怎么做。

您能告诉我如何加载图像并将它们存储在堆栈中吗?

到目前为止,这是我写的代码:

function image = load_image_array(dir, start, finish)
    for i = start:finish

        filename = [ dir '/' sprintf('%08d', i) '.jpg' ];
        image = importdata( filename, 'jpg' );

        figure( i );
        imagesc( image );

    end
end

您认为提前预先分配数组是个好主意吗?另外,3维数组是个好主意吗?我想要RGB图像,我需要有3个堆栈还是4维数组呢?

2 个答案:

答案 0 :(得分:3)

假设它们的大小相同,将它们存储在堆栈中就像这样简单:

...
imageStack(i,:,:) = image;
...
imagesc( squeeze(imageStack(i,:,:)) );

如果尺寸不同,请使用cell array

...
imageStack{i} = image;
...
imagesc( imageStack{i} );

我的语法可能是关闭单元格数组,测试它并使用它。我会在以后上班时记得再次检查它。

答案 1 :(得分:0)

你可以查看这个链接。让它变得非常简单!

http://blogs.mathworks.com/steve/2006/06/06/batch-processing/