我正在努力并需要帮助。
我想从现实世界物体的已知运动(实际上相机正在移动)计算光流速。这是我在上一个问题(Determining if a feature is part of a moving object from sparse optical flow (KLT))中提出的问题的一部分。
无论如何,我使用cvGoodFeaturesToTrack()
和cvCalcOpticalFlowPyrLK()
完成了计算光流。
我只是想检查一下我计算的流量在理论上是否正确(对应于相机的运动)。
让我的相机仅在Z轴上移动(暂时忽略偏航率)。假设我的相机移动Vz(沿Z方向)。
我可以通过
找到光流vx = x * Vz / Z
vy = y * Vz / Z
(假设Vx,Vy = 0 - > x轴和y轴没有摄像机运动)
这是我主要从http://www.cse.psu.edu/~rcollins/CSE486/lecture22_6pp.pdf学习的内容。
问题是解决这个问题我必须要有Z.在我的情况下,我不能假设表面Z是扁平的或已知的。相机正在道路上行驶并垂直于地面。
请有人帮我解答以下问题:
非常感谢。
[如果你觉得这个问题太模糊,请告诉我,以便我能提供更多细节。]
答案 0 :(得分:3)
也许这有助于...中佛罗里达大学计算机视觉集团的视频讲座:
来自Jan Erik Solem的其他python代码:Programming Computer Vision with Python。
阅读第10.4章,它很可能会回答你的所有问题。
另请参阅该书的第5.4章,如果您使用相机拍摄图像,然后在x方向上稍微移动相机并拍摄另一张图像,您可以使用这两张图像计算出一个称为“视差图”的图像。说明图像中的前后对比是什么。这有点像找出z方向。你已经尝试过的东西,以及一些关于立体成像的评论。
第4.3章解释了使用平面标记的姿势估计。您可以使用放置在相机前方的已知距离的物体来校准相机。这很可能是你应该首先看到的。