イメージレジストレーションの反復方法について

6 Ansichten (letzte 30 Tage)
Kaisei Sato
Kaisei Sato am 5 Aug. 2022
Beantwortet: Kojiro Saito am 8 Aug. 2022
以下の処理を用いて,イメージレジストレーションを行おうと思いますが,
画像データが1000枚程度あり,そのすべてをレジストレーションしたいと思っています.
そのためには,for文による繰り返し処理が必要ですが,どのようにfor分を組めばいいか教えてもらえばと思います.
参考:https://jp.mathworks.com/help/images/registering-multimodal-mri-images.html
以上,お手数ですが,ご回答お願いします.
  2 Kommentare
Kojiro Saito
Kojiro Saito am 8 Aug. 2022
参考ドキュメントの例では、固定イメージと移動イメージのペアを使ってレジストレーションをしていますが、今回は画像データ1000枚にそれぞれ500枚ずつペアがあるのでしょうか?
Kaisei Sato
Kaisei Sato am 8 Aug. 2022
ご連絡ありがとうございます.
経時変化をとっており,その位置づれを補正したいと思っております.
そのため,1枚目と2枚目,2枚目と3枚目・・・・999枚目と1000枚目
というように1000枚の画像の位置補正をできればと思っております.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Kojiro Saito
Kojiro Saito am 8 Aug. 2022
まずはドキュメントのレジストレーション例を繰り返し使えるように関数化します。
関数化についてはこのあたりのドキュメントが参考になります。
ここではdicomImageRegという関数名で、ファイル名もdicomImageReg.mで保存します。
function registeredImage = dicomImageReg(img1, img2)
[optimizer,metric] = imregconfig('multimodal');
optimizer.InitialRadius = optimizer.InitialRadius/3.5;
optimizer.MaximumIterations = 300;
tformSimilarity = imregtform(img2, img1,'similarity',optimizer,metric);
registeredImage = imregister(img2, img1,'affine',optimizer,metric,...
'InitialTransformation',tformSimilarity);
end
元のドキュメントには試行錯誤で色々試していましたが、最後のレジストレーション方法による結果のみリターンするようにしています。
dcmファイルをまとめてdirコマンドでファイル取得して、ファイルの数だけレジストレーションをおこないます。
結果を画像保存する際はimwritedicomwriteを使います。
こちらがサンプルです。
list = dir("*.dcm"); % 現在のフォルダにdcm画像がある場合
%list = dir("image/*.dcm"); % 現在のフォルダのimageサブフォルダにdcm画像がある場合
for n=1:length(list)-1
img1 = dicomread(list(n).name);
img2 = dicomread(list(n+1).name);
registeredImage = dicomImageReg(img1, img2);
%imwrite(registeredImage, sprintf('out%d.jpg', n)) % JPEGフォーマットで保存する場合
dicomwrite(registeredImage, sprintf('out%d.dcm', n)) % DICOMフォーマットで保存する場合
end

Kategorien

Mehr zu 幾何学的変換とイメージ レジストレーション finden Sie in Help Center und File Exchange

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!