如何在 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 阵列。
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 阵列。