如何将3D矩阵转换为几个2D矩阵?

Ech*_*831 0 matlab mat-file

mat文件是156*192*25 3D矩阵.数据是mat文件中的一系列n = 25个图像.如何将此3D矩阵转换为25个2D矩阵并独立显示?谢谢〜

Dan*_*iel 5

我建议不要分割你的图像堆栈,而只是使用I(:,:,3),例如你需要第三张图像.

要显示您可以使用的图像:

montage(permute(I,[1,2,4,3]))
Run Code Online (Sandbox Code Playgroud)

一起显示所有图像.需要置换,因为montage期望156*192*1*25堆叠的灰度图像,第三维保留用于颜色通道.另外,要显示单个图像,请使用:

imshow(I(:,:,3));
Run Code Online (Sandbox Code Playgroud)

要将每个图像保存到单个mat文件,请使用:

for ix=1:size(I,3)
   M=matfile(sprintf('image%03d',ix),'writable',true);
   M.image=I(:,:,ix);
end
Run Code Online (Sandbox Code Playgroud)