Reddy Chatterjiの論文に記載されているように、位相相関を使用して画像のレジストレーションを行おうとしています。私の場合、画像は相対的にスケーリングおよび変換されます。
私が理解しているように、相対スケールを見つけるアルゴリズムは次のとおりです(参照:論文のフローチャート)。
F1 = DFT(I1)
F2 = DFT(I2)
H1 = Highpass(F1)
H2 = Highpass(F2)
L1 = LogPolar(Magnitude(H1))
L2 = LogPolar(Magnitude(H2))
PC = PhaseCorrelate(L1,L2)
PM = norm(PC)
R = IDFT(PhaseCorr/PM)
P = Peak(R)
Scale = LogBase^P[1]
スケールは一見無意味な値を与えます(画像ごとに大きく異なり、決して修正されません)。
しかし、スケールを無視すると、同じ位相相関アプローチが変換にうまく機能します。ですから、対数極変換に問題があるのではないかと思います。これは私が翻訳のために解決した例です-左の画像はオリジナルで、右はトリミングされて翻訳されています-ソリューションは元の画像の上に表示されています:
対数極座標変換のために、私は第一極空間への変換
以下は、使用した対数極空間の画像の例です(目立った問題がある場合):
最後に、これは画像が位相相関ステップの前に通過する実際の変換を示しています(上はDFTマグニチュードポストハイパスフィルター、下は対数極空間におけるものです)。
私は、LogPolarメソッドとPhaseCorrelateメソッドを持つOpenCVを使用しています。PhaseCorrelateは、私の手動の実装と同様に、翻訳の正しい答えを提供してくれますが、規模では正しくありません。OpenCV LogPolarまたは私自身の使用は正確さに影響を与えないので、何かが欠けているに違いありません。
任意の助けいただければ幸いです。