matlab 阅读和显示多个MRI图像

gkl3eglg  于 2023-02-19  发布在  Matlab
关注(0)|答案(1)|浏览(192)

我想使用以下代码在MATLAB中读取100个不同的MRI图像:

% Preallocate the 256-by-256-by-1-by-20 image array.
X = repmat(int16(0), [256 256 1 20]);
% Read the series of images.
 for p=1:20
   filename = sprintf('brain_%03d.dcm', p);
   X(:,:,1,p) = dicomread(filename);
end
% Display the image stack.
montage(X,[])

但是这个错误出现了
预订的分配维度不匹配。
这个代码有什么问题?

gg58donl

gg58donl1#

下标赋值维数不匹配。sprintf()的大小不是(256x256),因为X(:,:,1,p)使用了错误的维数。
假设你想存储一个4行4列的图像,亮度范围从0到255,那么你总共有16个元素,每个元素都有一个唯一的亮度值。
这个(:,:,1)意味着N维,乘以N维乘以1。
给定一个4x4是([1:4],[1:4],1)
X(:,:,1,p)是一组图像的集合。

相关问题