メインコンテンツ

imregcorr

相互相関を使用した、2 つの 2 次元イメージの位置を合わせる幾何学的変換の推定

説明

tform = imregcorr(moving,fixed) は、勾配相関を使用して、イメージ moving を参照イメージ fixed と位置合わせする幾何学的変換を推定します。

tform = imregcorr(moving,Rmoving,fixed,Rfixed) は、イメージ moving を参照イメージ fixed と位置合わせする幾何学的変換を推定します。RmovingRfixed は、それぞれ moving イメージと fixed イメージに関する空間情報を含む空間参照オブジェクトです。幾何学的変換 tform は、ワールド座標系でポイント マッピングを定義します。

また、tform = imregcorr(___,tformType) は変換タイプ tformType を指定します。

tform = imregcorr(___,Name=Value) を使用すると、相互相関法を位相相関として指定し、名前と値の引数を使用して位相相関のウィンドウ処理を有効または無効にすることができます。

[tform,peakcorr] = imregcorr(___) は、ピーク相関値 peakcorr も返します。

すべて折りたたむ

参照イメージをワークスペースに読み取ります。

fixed  = imread("cameraman.tif");

固定イメージのスケーリングと回転によって、合成の移動イメージを作成します。

scaleFactor = 2.3;
theta = 20;
translation = [0 0];
tform = simtform2d(scaleFactor,theta,translation);
moving = imwarp(fixed,tform);

合成ノイズを移動イメージに追加します。

moving = moving + uint8(10*rand(size(moving)));

固定イメージと移動イメージを並べて表示します。

imshowpair(fixed,moving,"montage")

Figure contains an axes object. The hidden axes object contains an object of type image.

imregcorr を使用して、イメージの位置合わせに必要な変換を推定します。

tformEstimate = imregcorr(moving,fixed);

推定した幾何学的変換を移動イメージに適用します。名前と値の引数 "OutputView" を指定して、参照イメージと同じサイズで、同じワールド座標範囲をもつレジストレーションされたイメージを取得します。

Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate,"OutputView",Rfixed);

元のイメージとレジストレーションされたイメージを横に並べて表示して、レジストレーションをチェックします。次に、"falsecolor" オプションを使用して、レジストレーションされたイメージを元のイメージに重ね合わせて表示して、イメージが異なる領域を強調表示します。

imshowpair(fixed,movingReg,"montage")

Figure contains an axes object. The hidden axes object contains an object of type image.

imshowpair(fixed,movingReg,"falsecolor");

Figure contains an axes object. The hidden axes object contains an object of type image.

入力引数

すべて折りたたむ

移動イメージまたはレジストレーションされるイメージ。グレースケール イメージ、バイナリ イメージ、または RGB イメージとして指定します。imregcorr は、処理前に rgb2gray を使用して RGB イメージをグレースケール イメージに変換します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

ターゲット方向の参照イメージ。グレースケール イメージ、バイナリ イメージ、または RGB イメージとして指定します。imregcorr は、処理前に rgb2gray を使用して RGB イメージ をグレースケール イメージに変換します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

移動イメージの空間参照情報。imref2d オブジェクトとして指定します。

固定イメージの空間参照情報。imref2d オブジェクトとして指定します。

推定する変換のタイプ。次のいずれかの値を指定します。

説明
"translation"

平行移動変換

"translation" オプションを空間参照オブジェクト Rmoving および Rfixed と共に使用する場合、入力イメージのピクセル範囲はワールド座標内で同じでなければなりません。

"rigid"

剛体変換: 平行移動と回転

"rigid" オプションを空間参照オブジェクト Rmoving および Rfixed と共に使用する場合、入力イメージのピクセル範囲はワールド座標内で同じでなければなりません。

"similarity"

相似変換: 平行移動、回転、等方性スケーリング

位相相関法で "similarity" オプションを使用する場合、imregcorr は 1/4 未満または 4 を超えるスケールの差を検出しません。

データ型: char | string

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: tform = imregcorr(moving,fixed,Method="phasecorr") は位相相関を使用します。

R2024b 以降

相関法。勾配相関の場合は "gradcorr"、位相相関の場合は "phasecorr" として指定します。入力イメージのいずれかがベクトルだった場合、位相相関が使用されます。

周波数領域におけるスペクトル漏れの効果を抑制するためのウィンドウ処理の使用。数値または logical の 1 (true) または 0 (false) として指定します。WindowtrueMethod"phasecorr" の場合、imregcorr 関数はブラックマン フィルターを使用してウィンドウ処理を実行します。Method"gradcorr" の場合、関数は Window 引数を無視します。

位相相関のレジストレーション結果の安定性を向上させるには、Windowtrue に指定します。ただし、イメージ内の共通の特徴がエッジに沿った向きになっている場合は、Windowfalse に設定することで優れたレジストレーション結果が得られる場合があります。

出力引数

すべて折りたたむ

幾何学的変換。変換タイプ tformType に従う幾何学的変換オブジェクトとして返されます。

tformType幾何学的変換オブジェクト
"translation"transltform2d
"rigid"rigidtform2d
"similarity"simtform2d

2 つのイメージ間のピーク相関値。範囲 [0, 1] の数値として返されます。ピーク相関値が大きいほど、推定された幾何学的変換の信頼性が高くなります。

ヒント

  • イメージのタイプが double である場合は、レジストレーション前に im2single を使用してイメージを single にキャストすることにより、パフォーマンスを向上させることができます。double 型の入力イメージを使用すると、FFT は double で計算されます。

  • 勾配相関アルゴリズムと位相相関アルゴリズムには違いがあるため、ピーク相関値 peakcorr をアルゴリズムのパフォーマンスを比較するための指標として使用しないでください。

参照

[1] Reddy, B. S. and Chatterji, B. N. "An FFT-Based Technique for Translation, Rotation, and Scale-Invariant Image Registration." IEEE Transactions on Image Processing, Vol. 5, No. 8, August 1996.

[2] Tzimiropoulos, Georgios, Vasileios Argyriou, Stefanos Zafeiriou, and Tania Stathaki. “Robust FFT-Based Scale-Invariant Image Registration with Image Gradients.” IEEE Transactions on Pattern Analysis and Machine Intelligence 32, no. 10 (October 2010): 1899–1906. https://doi.org/10.1109/TPAMI.2010.107.

拡張機能

すべて展開する

バージョン履歴

R2014a で導入

すべて展開する