【问题标题】:Calculate the z coordinate of an object relative to the camera with kinect用kinect计算物体相对于相机的z坐标
【发布时间】:2012-10-16 09:16:41
【问题描述】:

我想计算一个物体相对于相机(kinect)的z坐标,知道来自kinect的深度信息。我也知道内在参数。

非常感谢任何帮助。谢谢!

【问题讨论】:

  • 您使用什么驱动程序? (KinectSDK、OpenKinect/libfreenect、OpenNI?)
  • 那么 c++,对吧?你在使用支持 OpenNI 的 OpenCV 吗?
  • 是的,我得到了深度:depthMap.at

标签: camera coordinates kinect


【解决方案1】:

如果您想要真实世界的测量值(包括深度),您想要检索点云图,例如:

Mat world;
if( capture.retrieve(world, CV_CAP_OPENNI_POINT_CLOUD_MAP)){
Vec3f pt3D = world.at<Vec3f>(yourY, yourX);
cout << "pt3D" << pt3D << endl;
}

请注意,您先传递 y,然后传递 x。 我最近有learned that :)

【讨论】:

  • 但是 cout (y,x) 值。相反,我想要沿 z 坐标相机的值
  • 据我所知,OpenNI 抓取器返回 POINT_CLOUD_MAP 的 x,y,z position in meters。这不是你需要的吗?
  • 我尝试选择两个像素:(310,80) 和 (310,80) 但我有 pt3D1[2]=1.014 和 pt3D2[2]=1.052 而它们必须相同跨度>
  • 您可以尝试使用 putText 在输出图像/矩阵中绘制坐标,但假设 (310,80) 是一个有效的深度像素,并且该位置的现实对象不会移动(也kinect),深度值将大致相同,但不完全相同。据我所知,如果您使用华硕传感器检查深度值,同一像素的深度值将保持稳定。不过,我还没有在 kinect 上体验过……深度似乎总是在某个值附近“闪烁”一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 2013-04-15
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
相关资源
最近更新 更多