使用两个网络摄像头跟踪3D对象

时间:2015-10-30 09:17:27

标签: python opencv 3d

我在手肘上使用乒乓球。我可以在python中使用OpenCV跟踪它并在每个帧中提取x和y,但问题是;我也需要z。所以我在冠状面上添加了第二个凸轮。

如果你不熟悉这里是图片:

enter image description here

我的第一个凸轮位于矢状面上。我不知道如何同步它们。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

几种解决方案:

  • 将您的网络摄像头定位在2个垂直平面(您所做的)中,并根据(x,y,0)手动测量它们之间的距离。

然后你有第一个网络摄像头在(0,0,0),第二个网络摄像头在(15,16,0)。从那里您可以轻松推断出图像之间的转换,请参阅this wiki

旋转90°+平移,因此如果沿z轴旋转,则变换矩阵将为:

0    1   15

-1   0   16

0    0   1

0    -1   15

1    0    16

0    0    1

取决于旋转是+或 - 90°。如果您有疑问,请检查您的数据。

  • 另一个解决方案:定位你的两个网络摄像头,然后在拍摄区域放置参考点(其中4个应该是好的,定义笛卡尔坐标系),并决定它们将定义你的参考框架。然后,您将两个网络摄像头的输入转换为将其坐标转换为该帧。我想你可以通过在我给你的链接中使用一些数学并在OpenCV中检查你的结果来做到这一点。