arrays - 如何在 MATLAB 中加载和存储图像堆栈

标签 arrays image matlab multidimensional-array

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

图像很小,而且数量<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 维数组吗?

最佳答案

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

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

如果它们的大小不同,只需使用 cell array :

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

我的元胞数组语法可能不正确,请测试一下并使用它。当我稍后开始工作时,我会尽量记住仔细检查它。

关于arrays - 如何在 MATLAB 中加载和存储图像堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7808016/

相关文章:

c - 它在C中创建了一个数组,当程序从内存中出来时会发生什么?

javascript - 如何使用 Javascript 根据另一个数组的相应元素的属性对数组进行排序?

regex - MATLAB 正则表达式如果是单词的一部分则跳过

matlab - 使用点向量从 3D 数组中采样 1D 向量

java - 如何用随机整数填充数组并创建一个按钮来激活它

javascript - 无法使用过滤器过滤多个字段

java - 从 http GET 响应获取图像作为 base64 字符串

c# - 具有两个来源的 WPF 图像

ios - 用作按钮图像时图像会变形

matlab - 如何将命令行参数传递给在 Linux/Unix 上运行的独立 MATLAB 可执行文件?