将相机的查看方向对齐,以便在特定方向上查看

时间:2013-03-29 13:54:22

标签: graphics 3d computer-vision perspectivecamera projective-geometry

我正在使用点云和多个图像。 我知道相机的内在和外在参数。我想要的是找到 旋转矩阵,它将旋转我的相机(不改变位置)以查看 某个方向。更具体地说,我将适合飞机到点云和 然后我想将我的相机的观察方向与垂直于平面的视图对齐(没有 改变立场)。

因此,在给定相机的旋转矩阵的情况下,我也会找到图像的单应变换。

请有人帮助我。

2 个答案:

答案 0 :(得分:0)

dir1成为相机的当前方向,dir2成为相机的目标方向。计算归一化方向向量:

d1 = dir1 / |dir1|
d2 = dir2 / |dir2|

我们希望获得一个从d1转换为d2的矩阵。换句话说,此矩阵应围绕theta方向的轴执行u角度旋转,其中:

u = (d1 x d2) / |d1 x d2|       <-- normalized cross product of d1 and d2
sin(theta) = |d1 x d2|          <-- the length of the cross product
cos(theta) = d1 * d2            <-- dot product of d1 and d2

最后,我们将上述值插入此公式(您可以阅读更多here),获取请求的矩阵:

rotation matrix

答案 1 :(得分:0)

假设x是图像的中心,则说c = [a,b,1](这是考虑图像是2D图像)。

现在您有内在参数矩阵K和外在 - 旋转矩阵R

我们可以找到这种风格的方向:

temp_X = inverse(K) * c
temp_X = transpose(R) * temp_X
direction = temp_X / norm(temp_X)

final direction = t - direction

我不知道这是否完全正确,但你可以尝试一下。