OpenCV LK光流深度(Z)

时间:2014-02-22 20:53:45

标签: c++ opencv depth opticalflow

我通过OpenCV calcOpticalFlowPyrLK函数在我之前跟踪的点上计算光流(OF)。这应该是正常的。现在我尝试获得相对深度Z.

为此我试图使用以下2个等式为你和v:

     (Tz*x - Tx*f)           (Tz*y - Ty*f)
u =  ______________      v = _____________
            Z                     Z

我省略了等式的旋转部分,因为我假设我有纯粹的翻译。 从上面求解Z的两个方程,并尝试用从前一个OF计算步骤获得的值(坐标)i计算Z.

  • 对于变量x,我使用了image1的图像坐标。
  • 对于u和v i,我使用了从OF计算中获得的点数 - > image2中的跟踪点。
  • 例如假设x = 413,y = 210,u = 415,v = 210,Tx = -0.9,Ty = -0.176,Tz = -0.3846,f = 640

我的问题是我得到2个不同的Z值。 在我看来,两者的深度应该相等?

我搜索了一些关于我如何解决问题并找到一个好paper的信息,除了我认为他们在性能分析中混合了Farnback和LK。 据我所知,等式背后的数学(4,第4页),它与上面的等式相同,只是在矩阵表示中。我尝试用以上的值来解决问题,结果我得到了一个2x2矩阵。不知道我应该用4个Z值做什么?!

希望有人可以解释我做错了什么,并指导我正确的方向,以便我能够从OF获得正确的Z值(深度)。谢谢!

0 个答案:

没有答案