ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

cpcorr

相互相関を使用したコントロール ポイントの位置の調整

構文

movingPointsAdjusted = cpcorr(movingPoints,fixedPoints,moving,fixed)

説明

movingPointsAdjusted = cpcorr(movingPoints,fixedPoints,moving,fixed) は正規化された相互相関を使用して movingPoints および fixedPoints で指定されたコントロール ポイントの各組を調整します。movingfixed はイメージです。cpcorrmovingPointsAdjusted で調整されたコントロール ポイントを返します。

    メモ:   moving イメージと fixed イメージのスケールが同じでないと、cpcorr は有効になりません。cpcorr がコントロール ポイントの組を相関できない場合、その組の movingPointsAdjusted には movingPoints と同じ座標が含まれます。

すべて折りたたむ

cpcorr を使用して、イメージ内の選択されたコントロール ポイントを微調整します。movingPoints 行列と movingPointsAdjusted 行列の値の違いに注目してください。

2 つのイメージを読み取ります。

moving = imread('onion.png');
fixed = imread('peppers.png');

両方のイメージに一連のコントロール ポイントを定義します。

movingPoints = [127 93; 74 59];
fixedPoints = [323 195; 269 161];

相互相関を使用してコントロール ポイントを調整します。

movingPointsAdjusted = cpcorr(movingPoints,fixedPoints,...
                              moving(:,:,1),fixed(:,:,1))
movingPointsAdjusted =

   127    93
    72    60

入力引数

すべて折りたたむ

変換するイメージ内のコントロール ポイントの座標。M 行 2 列の double の行列として指定します。

例: movingPoints = [127 93; 74 59];

データ型: double

参照イメージ内のコントロール ポイントの座標。M 行 2 列の double 行列として指定します。

例: fixedPoints = [323 195; 269 161];

データ型: double

レジストレーションするイメージ。有限値の数値配列として指定します。

ターゲット方向の参照イメージ。有限値の数値配列として指定します。

出力引数

すべて折りたたむ

変換するイメージ内のコントロール ポイントの調整後の座標。movingPoints と同じサイズの double の行列として返されます。

ヒント

次のうちどれか 1 つでも当てはまる場合、cpcorr は点を調整できません。

  • 点がいずれかのイメージのエッジに近すぎる

  • イメージ内で点の周辺領域に Inf または NaN が含まれている

  • 移動イメージで点の周辺領域にゼロの標準偏差がある

  • イメージ内の点の周辺領域に正しい相関がない

アルゴリズム

cpcorr はコントロール ポイントの位置を最大 4 ピクセルだけ移動します。調整後の座標の誤差は最大 0.1 ピクセルです。cpcorr は、イメージの内容とコントロール ポイントの大まかな選択からサブピクセル精度を得るように設計されています。

R2006a より前に導入

この情報は役に立ちましたか?