0

我有一些(大约平坦)视图的航拍视频(不需要深度图)。

我想获得相机中心经过的地面路径的形状。

路径不必与世界北方相对应正确,也不必具有任何世界坐标。即使仿射变换,也只是具有大致相同的形状。

对于每一帧,我已经有了表示该帧和前一帧之间的仿射变换的矩阵,精度很高,这意味着我有一个矩阵,对于帧中的每个像素,给出该像素在连续帧中的位置.

鉴于相机正在移动,我如何获得位于帧中心(=轨迹)的地面上的点的地面路径的形状(随着时间的推移)?

更一般地说,这个问题实际上只是关于知道帧的相对中心,对于每一帧,与第一帧的对应关系。

任何线索以及答案都会使我受益匪浅。

4

1 回答 1

1

我们称帧ii+1 T之间的转换。让我们看一下帧i中的点P[i] = (Xi,Yi)。如果我们想知道这个点是否在i+1帧中,我们只需要在点P[i]上应用变换T并得到一个新点P[i+1] = T(P)

为了获得相机的路径,我们从第 1 帧开始,图像的中心点为 P1 = (row/2,col/2) 并计算 P2 = T(P1)。相机在第 1 帧和第 2 帧之间的路径大致是连接第 2 帧中心和 P2 之间的线。我们可以通过计算 P3 = T(P2) 等来继续对第 2 帧执行此操作……问题是这些点位于图像坐标中,而不是世界坐标中。

为了解决这个问题,我们只需决定我们的“世界坐标系”PW1 = (0,0) 是第一帧的中心。在我们新的“世界坐标系”中,第二帧中相机的中心将是 PW2 = ((row/2,col/2) - P2) - PW1。对于第三帧,中心将是 PW3 = ((row/2,col/2) - P3) - PW2,对于第 i 帧 PWi+1 = ((row/2,col/2) - Pi+1 ) - PWi。这个想法是 PW_new = motion_of_the_camera_between_frames - last_location。

最后,您将拥有一组点 PW1、PW2、..、PWn,它们是相机中心所经过的路径。拟合样条曲线或其他东西并获得路径的形状。

于 2016-07-26T21:55:06.077 回答