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

2 visualizaciones (últimos 30 días)
Motohiro Horiuchi
Motohiro Horiuchi el 28 de Jun. de 2020
Comentada: Motohiro Horiuchi el 29 de Jun. de 2020
上の例の通りにレジストレーションを行いました。
この際、同じサイズの別の画像に上記で行った変換と全く同じ変換を行う方法はありますか?

Respuesta aceptada

Kei Otsuka
Kei Otsuka el 28 de Jun. de 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 comentario
Motohiro Horiuchi
Motohiro Horiuchi el 29 de Jun. de 2020
ありがとうございます。
解決できました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 幾何学的変換とイメージ レジストレーション en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!