필터 지우기
필터 지우기

画像の位置合わせについて

조회 수: 11 (최근 30일)
弘達 土亀
弘達 土亀 2021년 6월 25일
댓글: Megumi Fukuda 2021년 7월 5일
2つの画像(DICOM形式)の位置合わせを行い、出力(DICOM形式)したいと考えております。
Pro_A90.dcm:装置Aで作成した90スライスの投影データ(DICOMファイル)
Pro_B90.dcm:装置Bで作成した90スライスの投影データ(DICOMファイル)
Pro_A90.dcmとPro_B90.dcmは同じ形の物のデータであります。
これらの位置合わせて、それぞれのファイルをDICOM形式で出力したいと考えております。
この処理は可能でしょうか。
ご教授頂ければと思います。
何卒宜しくお願い致します。

채택된 답변

Megumi Fukuda
Megumi Fukuda 2021년 6월 27일
お話伺った感じですと、マルチモーダル 3 次元医用画像のレジストレーションdicomwriteを使ってできるのではないか?と思います。「マルチモーダル 3 次元医用画像のレジストレーション」のページの例に沿って処理をしていただき、最後に出てきたものをdicomwriteで書き出すというワークフローになると思います。
もし良ければ、お手持ちのデータで上記の処理がうまくいったか、教えていただけますと大変うれしいです。よろしくお願いいたします。

추가 답변 (3개)

弘達 土亀
弘達 土亀 2021년 6월 27일
貴重な情報ありがとうございます。
「マルチモーダル 3 次元医用画像のレジストレーション」のページを拝見させて頂きました。
難しそうだったので、同じことができるかやってみたいと思います。
「マルチモーダル 3 次元医用画像のレジストレーション」の例についても、またご教示頂けると助かります。
今後とも何卒宜しくお願い致します。
  댓글 수: 1
Megumi Fukuda
Megumi Fukuda 2021년 6월 27일
お返事ありがとうございます。
示したURLでは、RIRE形式のデータを読み込んでいますが、DICOM形式ですとdicomreadで読んでそのままいけるかもしれませんし、少し工夫が必要になるかもしれません。
データを見せていただかないと難しい部分もあるかもしれないですが、何か困った点や詰まった点などあれば、またお知らせください。

댓글을 달려면 로그인하십시오.


弘達 土亀
弘達 土亀 2021년 6월 30일
返信ありがとうございます。
今回のデータ(pro_A90.dcmとpro_B90.dcm)を添付させて頂きます。
もし可能でしたら、コードなどをご教示頂けると大変助かります。
お忙しいところ恐縮ですが、何卒宜しくお願い致します。
  댓글 수: 1
Megumi Fukuda
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일
お忙しいにも関わらず、大変貴重な情報ありがとうございます。
自分は最初の画像入力のところから、良く分からなかったので大変助かります。
頂いたコードを参考に進めて行ければと思います。
勝手ありますが、この続きのコードについてもわかりましたら教えて頂ければと思います。
何卒宜しくお願い致します。
一つ質問です。
この位置合わせは、90枚の投影データに全て一括で行うのはむずかしいでしょうか?
もしかすると、画像再構成したデータの方が扱いやすいのでしょうか?
いろいろと相談に乗ってもらいながら、こんな事を聞いてしまい申し訳ありません。
  댓글 수: 1
Megumi Fukuda
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 CenterFile Exchange에서 DICOM Format에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!