2016-11-11 9 views
2

翻訳のみに基づいて画像登録を行うためにMATLABを使用しようとしていますので、最初に簡単なテストを行いました。MATLABの画像登録機能が簡単なテストでは機能しません

まず、I 2つの、単純なバイナリイメージの enter image description here enter image description here

を作成あなたはそれらの2つの画像間の垂直方向に20画素ずれが見ることができ、その後、私は登録を行うには2つの機能を試してみました:

[optimizer,metric] = imregconfig('Monomodal'); 
tform = imregtform(img1,img2,'Translation',optimizer,metric); 
img1reg = imregister(img1,img2,'Translation',optimizer,metric); 

どちらもimregtformでもimregisterでもありません。 imregtformは恒等変換行列を与え、imregister "img1reg"の出力は入力動画 "img1"と全く同じであった。

どうすればこの問題を解決できますか?

ここ

は、私が使用するコードです:。

img1 = zeros(100, 20); 
img1(35:45,:) = 1; 
img2 = zeros(100, 20); 
img2(55:65,:) = 1; 
[optimizer,metric] = imregconfig('Monomodal'); 
tform = imregtform(img1,img2,'Translation',optimizer,metric); 
img1reg = imregister(img1,img2,'Translation',optimizer,metric); 
+0

興味深い。私はそれらの機能を使ったことはありませんが、直感は彼らが働くべきだと言います。私は「アファイン」を試みて、アイデンティティではないが、奇妙なものを与える。 –

答えて

0

「あなたは、このような大規模な翻訳では、固定画像内のオブジェクトは、すべての動画でオブジェクトを重ならない小さな翻訳を考慮する必要があります。したがって、アルゴリズムを導くための登録コスト関数には勾配が存在しません。

一般的に、人々は相関ベースの登録を最初に行い、上記のような総誤整列をキャプチャしてから修正します。

回答を見るhttps://www.mathworks.com/matlabcentral/answers/311776-image-registration-fucntions-don-t-work-for-a-simple-test

関連する問題