画像の位置合わせについて
조회 수: 11 (최근 30일)
이전 댓글 표시
2つの画像(DICOM形式)の位置合わせを行い、出力(DICOM形式)したいと考えております。
Pro_A90.dcm:装置Aで作成した90スライスの投影データ(DICOMファイル)
Pro_B90.dcm:装置Bで作成した90スライスの投影データ(DICOMファイル)
Pro_A90.dcmとPro_B90.dcmは同じ形の物のデータであります。
これらの位置合わせて、それぞれのファイルをDICOM形式で出力したいと考えております。
この処理は可能でしょうか。
ご教授頂ければと思います。
何卒宜しくお願い致します。
댓글 수: 0
채택된 답변
Megumi Fukuda
2021년 6월 27일
お話伺った感じですと、マルチモーダル 3 次元医用画像のレジストレーションとdicomwriteを使ってできるのではないか?と思います。「マルチモーダル 3 次元医用画像のレジストレーション」のページの例に沿って処理をしていただき、最後に出てきたものをdicomwriteで書き出すというワークフローになると思います。
もし良ければ、お手持ちのデータで上記の処理がうまくいったか、教えていただけますと大変うれしいです。よろしくお願いいたします。
댓글 수: 0
추가 답변 (3개)
弘達 土亀
2021년 6월 27일
댓글 수: 1
Megumi Fukuda
2021년 6월 27일
お返事ありがとうございます。
データを見せていただかないと難しい部分もあるかもしれないですが、何か困った点や詰まった点などあれば、またお知らせください。
弘達 土亀
2021년 6월 30일
댓글 수: 1
Megumi Fukuda
2021년 7월 3일
どのあたりで詰まってしまった、などありますでしょうか?
以下のコードを利用すると、ご添付いただいたファイルで位置を確認するところまでできます。
(変数名は少し変更してしまいました。分かりづらくなってしまったかもしれません)
img_orig = "pro_A90.dcm";
img_dist = "pro_B90.dcm";
hdr_orig = dicominfo(img_orig);
hdr_dist = dicominfo(img_dist);
X_orig = dicomread(hdr_orig);
X_dist = dicomread(hdr_dist);
X_orig = squeeze(X_orig);
X_dist = squeeze(X_dist);
centerOrig = size(X_orig)/2;
centerDist = size(X_dist)/2;
figure
imshowpair(X_orig(:,:,centerOrig(3)), X_dist(:,:,centerDist(3)));
ちなみに、「マルチモーダル 3 次元医用画像のレジストレーション」のサンプルについて、
[optimizer,metric] = imregconfig('multimodal');
については、
[optimizer,metric] = imregconfig('monomodal');
に書き換えたほうがいいかもしれません。
弘達 土亀
2021년 7월 4일
댓글 수: 1
Megumi Fukuda
2021년 7월 5일
> この位置合わせは、90枚の投影データに全て一括で行うのはむずかしいでしょうか?
マルチモーダル 3 次元医用画像のレジストレーションにならって、DICOM画像を読み込んで(ここで画像再構成 = 128x128x90の3次元画像データにします)、読み込んだ画像に対して変換を行う、というやり方が可能です。なので、投影データ(スライス1枚分、ということかと思います。間違っていたら教えてください)90枚分に変換を行っていると言えると思います。
先日のDICOM読み取りについて、マルチモーダル3次元医用画像のレジストレーションの見本に沿った変数になるように書き換えると、以下のような感じになります。頑張ってください :)
path_moving = "pro_A90.dcm";
path_fixed = "pro_B90.dcm";
movingHeader = dicominfo(path_moving);
fixedHeader = dicominfo(path_fixed);
movingVolume = dicomread(movingHeader);
fixedVolume = dicomread(fixedHeader);
movingVolume = squeeze(movingVolume);
fixedVolume = squeeze(fixedVolume);
% ここまでで手順1のコードが書かれた最初のボックスと同じところまで進んでいますので、
% 「関数 helperVolumeRegistration は、3 次元レジストレーションの結果の質を判断するために
% 提供されている補助関数です。ビューは対話方式で回転でき、両軸は一致したまま動きます。」の
% 先からすすめてみてください。
また、処理後のデータですが、DICOMにすることも可能ですが、そのままnifti形式に保存することもできます。
참고 항목
카테고리
Help Center 및 File Exchange에서 DICOM Format에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!