(MATLAB)通过2D切片重建3D CT图像

时间:2012-10-09 12:44:13

标签: matlab dicom

我有3D CT图像的2D切片。它们是DICOM格式,其中有250种。我想用MATLAB重建3D图像。我怎么能循环呢?

  • 我在我的Ubuntu系统上使用MATLAB R2010b。
  • 图片位置为:/home/amadeus/Desktop/images
  • 图片名称为:

    IM-0001-0001.dcm
    IM-0001-0002.dcm
    IM-0001-0003.dcm
    ...
    IM-0001-0250.dcm
    

1 个答案:

答案 0 :(得分:4)

显然只有读取DICOM文件的功能:dicomread,我建议使用它来加载图像,然后将它们存储在3D矩阵中。 sprintf可用于构建图像的文件名(使用%04d生成带有前导零的四位数字。)

假设所有图像都对齐且大小相同:

N = 250;
img_dir = '/home/amadeus/Desktop/images'

% read the first image separately just to get the size
strfile = 'IM-0001-0001.dcm';
img = dicomread(fullfile(img_dir, strfile));
siz_img = size(img);

% create result matrix:
ct3d = NaN([siz_img N]);
ct3d(:,:,1) = img;    

% load all the remaining images and put them in the matrix
for ii=2:N
    strfile = sprintf('IM-0001-%04d.dcm',ii);
    ct3d(:,:,ii)= dicomread(fullfile(img_dir, strfile));
end

编辑: 这假设图像是灰度(2d)。如果它们是全彩色(宽x高x 3),则应在赋值ct3d中添加另一个冒号运算符。