我有一些(大约平坦)视图的航拍视频(不需要深度图)。
我想获得相机中心经过的地面路径的形状。
该路径不必与世界北部相对应,也不必具有任何世界坐标。即使仿射变换了,形状也几乎相同。
对于每个帧,我已经有一个矩阵,该矩阵可以很好地表示该帧与前一帧之间的仿射变换,这意味着我有一个矩阵,该矩阵针对一帧中的每个像素给出该像素在连续帧中的位置。
假设摄像机正在移动,如何获得帧中心(=轨迹)上的斑点的地面路径的形状(随时间变化)?
更一般而言,问题实际上仅在于关于每个帧与第一帧相对应的已知帧的相对中心。
任何线索以及答案将使我受益匪浅。
我们称第i帧和第i + 1 T帧之间的转换。让我们看一下帧i中的点P [i] =(Xi,Yi)。如果我们想知道该点是否在帧i + 1中,我们只需要在点P [i]上应用变换T并获得一个新点P [i + 1] = T(P)即可。
为了获得路径,摄像机从帧1开始,图像的中心点为P1 =(行/ 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 =摄像机的运动_帧之间的帧-最终位置。
最后,您将获得一组点PW1,PW2,..,PWn,它们是摄像机中心所经过的路径。拟合样条曲线或其他东西并获得路径的形状。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句