我正在尝试对图像应用某种旋转,但它没有按预期工作。我的轮换是:
[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]
结果应该只是图像的旋转,但图像会像这样“缩小”:
我究竟做错了什么?