OpenCVの、私はこれらの二つの画像、たとえば、間のホモグラフィを計算します:
そして
右側の変な白いフォルムは気にしないでください。これは私が使用するスマートフォンホルダーによるものです。findHomography()関数によって与えられるホモグラフィ(Fast機能検出器とHammingLUT記述子マッチャーで検出された点を使用)は次のとおりです。
A = [ 1.412817430564191, 0.0684947165270289, -517.7751355800591;
-0.002927297251810, 1.210310757993256, 39.56631316477566;
0.000290600259844, -9.348301989015293e-05, 1]
ここで、同じプロセスを使用して、imagemagickを使用して、180度回転した(逆さまにした)同じ画像間のホモグラフィを計算します(実際には、90度の回転または270度...)どうぞ:
そして
これらの画像を使用すると、ホモグラフィは次のようになります。
B = [ 0.7148688519736168, 0.01978048500375845, 325.8330631554814;
-0.1706219498833541, 0.8666521745094313, 64.72944905752504;
-0.0002078857275647, -5.080048486810413e-05, 1]
ここで問題は、AとBをどのように関連付けるかです。Aの最初の2つの対角値はBの最初の対角値に近いですが、あまり正確ではありません(0.71486885ではなく.707805537)。私の最終的な目的は、必要な関係を使用して最終的なマトリックスを変換し、コストのかかる画像回転の計算を回避することです。
Mat invT = 1./t; Mat n = invT.t() * (H - R);
(実際n/d
。ここで、「回転を適用する」と3x1ベクトルが得られますが、それを使用してホモグラフィマトリックスを再度計算するにはどうすればよいですか?おかげで