4

スコアの計算を理解するために、OpenCV の素晴らしいソース コードを調べてきました。お気づきかもしれませんが、ライブラリは信頼スコアを使用して画像内のテンプレートを見つけることができます。cvMatchTemplate 関数は、画像内のテンプレートの確率と位置を示します。

DFT は遅いので、位相相関には FFTW ライブラリを使用することにしました。画像を取得し、2 の累乗のサイズに拡大し、テンプレートに対して同じことを行い、最初に両方の FFT を計算し、2 つの配列を乗算し、逆 FFT を計算し、最終的に結果を正規化しました。

この結果をビットマップで表示すると、テンプレートの場所が明確に示されますが、相関スコアを計算するのは困難です。デバッガーで cvMatchTemplate メソッドを 1 行ずつ実行しようとしましたが、ライブラリは DFT と任意の画像サイズを使用するため、役に立ちませんでした。そのメソッドで使用されるすべてのテーブル (sum、sqsum など) は、対応する任意のサイズに対して作成され、FFT は 2 の累乗を使用します。

その位相相関の結果からスコアを計算する方法についての情報をいただければ幸いです。「これを取り、それを取り、それらを乗算すると、画像に白い点が表示され、そうです」方法を説明する多くの情報源があります。cvMatchTemplate と同じようにスコアが必要です。

その計算のロジックを含むサイトや論文、または本を教えてください。ソースコードは完璧ですが、とにかくそれには望みがありません。

4

2 に答える 2

2

1) FFTW は、2 のべき乗でないサイズの配列で動作します。

2)あなたが検索/研究する可能性のある主題分野は、FFT相互相関定理です。

「2 つの関数の相互相関のフーリエ変換は、そのうちの 1 つが複素共役されている個々のフーリエ変換の積に等しい」

于 2011-01-09T01:34:32.427 に答える
1

まず、「画像を2の累乗に拡大」していないことを確認してください。あなたがこれを意味しなかったと私は確信します、しかしとにかくFFTWであなたは任意のサイズのFTを計算することができます。

OpenCVを何に使用しているのかわかりません。FFTを使用している場合は、正規化されたクロスパワースペクトルを自分で計算するのは非常に簡単です。つまり、「位相相関式」です。

ウィンドウを忘れずに、可能な限り最大サイズの画像のFFTを取得します。CPSを計算します。相関面ができたら、ピークを探します。

OpenCVがFT以外の位相相関に何を提供するかはわかりませんが、必要な論文は

G.A. Thomas, Television Motion Measurement for DATV and Other Applications, 1987, BBC Research Department.

于 2011-01-09T00:38:05.210 に答える