画像の位置合わせについて
12 次查看(过去 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形式に保存することもできます。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!