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

问题描述 投票:0回答:2
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张图片,但只能显示一张。

matlab matrix 3d imaging
2个回答
0
投票

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

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

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

0
投票

问题是可视化。您可以使用蒙太奇功能查看MxNxP堆栈或单元格阵列,其中每个单元格代表一幅图像。

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

figure, montage(images)

在上面的代码中。

如果您将数据可视化为最新评论中指示的卷,则IPT中的volshow或volumeViewer将执行此操作。

volumeViewer(Imatrix)
figure, volshow(Imatrix)

Imatrix是要在其上执行体积可视化的MxNxP阵列。

© www.soinside.com 2019 - 2024. All rights reserved.