一度最適化したレジス​トレーション処理を使​いまわす方法

10 vues (au cours des 30 derniers jours)
Motohiro Horiuchi
Motohiro Horiuchi le 28 Juin 2020
上の例の通りにレジストレーションを行いました。
この際、同じサイズの別の画像に上記で行った変換と全く同じ変換を行う方法はありますか?

Réponse acceptée

Kei Otsuka
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が同じ画像になっていることを確認できると思います。
  1 commentaire
Motohiro Horiuchi
Motohiro Horiuchi le 29 Juin 2020
ありがとうございます。
解決できました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 幾何学的変換とイメージ レジストレーション dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!