*freesurferで小児の小さな脳がうまく処理できないとき
小さな被験者だと肩とかMRIデータに入ってきますが、それらのデータが邪魔をしてfreesurferで脳の切り出しがうまくできないことがありました。
自験例ではdicomデータから顎あたり以下のデータを黒(レベルを0に)にすることでクリアできました。
以下処理のためのmatlabのスクリプトです。
%%%%%%%%%%%%%%% ここから下 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
for slicenumb=1:9 %% 0を除く1ケタ台のスライス(通常100スライス以上あるので変更の必要なし)※ケタ数によってD000000...の0の数が変わるので、分けて処理
sample(slicenumb,:,:)=dicomread(['/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/DCMDT/D000000' num2str(slicenumb)]); %% dicomデータのあるディレクトリ
info(slicenumb,:)=dicominfo(['/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/DCMDT/D000000' num2str(slicenumb)]); %% dicomデータのあるディレクトリ
end;
for slicenumb=10:99 %% 2ケタ台のスライス(同上。通常100スライス以上あるので変更の必要なし)
sample(slicenumb,:,:)=dicomread(['/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/DCMDT/D00000' num2str(slicenumb)]);
info(slicenumb,:)=dicominfo(['/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/DCMDT/D00000' num2str(slicenumb)]);
end;
for slicenumb=100:139 %% .139のところはスライス数に応じて変更
sample(slicenumb,:,:)=dicomread(['/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/DCMDT/D0000' num2str(slicenumb)]);
info(slicenumb,:)=dicominfo(['/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/DCMDT/D0000' num2str(slicenumb)]);
end;
cd('/net/nas_drive/hoge/hogehoge/a_subject/a_date_a_subject/newDCMDT'); %% 保存したいディレクトリの指定
for n=1:139 %% .139のところはスライス数に応じて変更
newsample=squeeze(sample(n,1:171,:)); %% 171のところは切り取りたい範囲に応じて変更
newinfo=squeeze(info(n,:));
filename=([num2str(n) '.dcm']);
dicomwrite(newsample,filename,newinfo);
end;
% Z=squeeze(sample(51,:,:));
% imshow(Z);
% imagesc(Z); %% 画像の確認