我正在尝试在 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/