画像に特定の回転を適用しようとしていますが、期待どおりに機能しません。私が持っているローテーションは次のとおりです。
[0.109285 0.527975 0.000000
-0.527975 0.109285 0.000000
0.000000 0.000000 1.000000]
これは、カメラの中心 (または必要に応じて Z 軸) を中心に ~78 度回転する必要があります。ホモグラフィを作成するには、翻訳コンポーネントがないため、次の式を使用します: K * R * K^-1
(無限ホモグラフィ)。
画像 (320x240) を変換するために使用するコードは次のとおりです。
cv::warpPerspective(image1, image2, K * R * K.inv(), image1.size());
ここで、K は次のとおりです。
[276.666667 0.000000 160.000000
0.000000 276.666667 120.000000
0.000000 0.000000 1.000000]
結果の行列K * R * K.inv()
は次のとおりです。
[0.109285 0.527975 79.157461
-0.527975 0.109285 191.361865
0.000000 0.000000 1.000000]
結果は画像の回転だけになるはずですが、画像は次のように「ズームアウト」されます。
私は何を間違っていますか?