OpenCV 中的共轭旋转变换
Conjugate rotation transformation in OpenCV
我正在尝试对图像应用特定的旋转,但它没有按预期工作。我的旋转是:
[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]
结果应该只是图像的旋转,但图像得到 "zoomed out" 是这样的:
我做错了什么?
显然我的旋转矩阵是错误的。
我正在尝试对图像应用特定的旋转,但它没有按预期工作。我的旋转是:
[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]
结果应该只是图像的旋转,但图像得到 "zoomed out" 是这样的:
我做错了什么?
显然我的旋转矩阵是错误的。