如何在 MATLAB 中堆叠一系列图像

How to stack a series of images in MATLAB

clc;clear all;


Imatrix = []
for i=1:3

  images{i} = imread(sprintf('frame-1065.png',i));
  Imatrix = cat(3, Imatrix, images{i});
  D = Imatrix;

end;

imshow(D)

这是我正在尝试的代码 运行,但问题是我有 2000 张图片,但我只能显示一张。

我认为您真正想要的是将图像存储为图像堆栈。 这将允许您查看图像堆栈,例如ImageJ 并滚动浏览它等

我会将它们存储为一个单独的 tiff 文件并执行类似的操作(请注意所有图像的大小必须相同):

numOfImages = 2000;
output_filename = 'imgstack.tif';
for k=1:numOfImages
    loaded_image = imread(sprintf('frame-%d.png',k));
    imwrite(loaded_image, output_filename, 'WriteMode',append','Compression','none');
end

问题是可视化。您可以使用蒙太奇函数查看 MxNxP 堆栈或元胞数组,其中每个元胞代表一个图像。

https://www.mathworks.com/help/images/ref/montage.html

figure, montage(images)

在你上面的代码中。

如果您想将数据可视化为体积(您在最近的评论中指出了这一点),那么 IPT 中的 volshow 或 volumeViewer 可以做到这一点。

volumeViewer(Imatrix)
figure, volshow(Imatrix)

其中 Imatrix 是您要对其执行体积可视化的 MxNxP 阵列。