2

3DCT画像の2Dスライスがあります。それらはDICOMフォーマットされており、250個あります。MATLABで3D画像を再構成したい。どうすればループでこれを行うことができますか?

  • UbuntuシステムでMATLABR2010bを使用しています。
  • 画像の場所は次のとおりです。/home/amadeus/Desktop/images
  • 画像の名前は次のとおりです。

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

1 に答える 1

4

明らかに、DICOMファイルを読み取るためだけの関数があります:dicomread、それを使用して画像をロードし、3Dマトリックスに保存することをお勧めします。sprintfを使用して、画像のファイル名を作成できます(%04d先行ゼロを含む4桁の数字を生成するために使用します)。

すべての画像が整列され、同じサイズであると仮定します。

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

于 2012-10-09T13:55:51.900 に答える