一度最適化したレジストレーション処理を使いまわす方法
10 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Motohiro Horiuchi
le 28 Juin 2020
Commenté : Motohiro Horiuchi
le 29 Juin 2020
上の例の通りにレジストレーションを行いました。
この際、同じサイズの別の画像に上記で行った変換と全く同じ変換を行う方法はありますか?
0 commentaires
Réponse acceptée
Kei Otsuka
le 28 Juin 2020
同じ変換を行うにはどのような変換を行ったのかを示す情報 = 変換行列 が必要ですが、imregister関数の出力として
この変換行列を得ることができるようになっていないため、まず始めにimregisterの内容を少し修正します。
1.imregisterをエディタで開く。
edit imregister
2.別名(imregister2.m)で保存
3.1行目を以下の内容と差し替えて上書き保存
function [movingReg,Rreg,tform] = imregister2(varargin)
これで、変換行列を出力できる関数imregister2が出来ました。
動作を確認してみます。
%% 2つの画像の読込・表示
orig = dicomread('knee1.dcm');
moving = dicomread('knee2.dcm');
%% 輝度ベースのレジストレーション実行・表示 (変換行列が必要な場合は、imregtform を使用)
[optimizer,metric] = imregconfig('multimodal'); % パラメタ設定 (別々のデバイス:異なる輝度範囲)
optimizer.MaximumIterations = 150; % 反復回数
optimizer.InitialRadius = 0.002; % 初期検索範囲
[Registered, ~, tform] = imregister2(moving, orig, 'affine', optimizer, metric); %アフィン変換:拡大縮小・平行移動・回転
figure, imshowpair(Registered, orig)
%% 得られた変換行列を利用し、幾何学変換実行
Registered2 = imwarp(moving, tform, 'OutputView', imref2d(size(orig)));
figure, imshowpair(Registered2, orig)
imwarpで変換した結果(Registered2)とRegisteredが同じ画像になっていることを確認できると思います。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur 幾何学的変換とイメージ レジストレーション dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!