c++ - 如何在 C++ 中从 Kinect 获取 XYZ 坐标

标签 c++ opencv augmented-reality kinect-sdk

我是 kinect 新手。我正在使用 C++ 在 Visual Studio 中开发一个增强现实项目。 我正在寻找一种通过 kinect 获取所有点坐标(X、Y、Z)的方法,但我很难弄清楚。任何人都可以帮我吗? 我如何从深度流中获取点数?

我在 xbox 360 上使用 Kinect V1。

最佳答案

假设使用 Kinect v2:最简单的方法是使用 ICoordinateMapper::MapDepthFrameToCameraSpace(参见文档 here)。

IKinectSensor *sensor;
UINT16 *depthPoints;
...
// initialize the sensor and grab a depth frame and get depthPoints
...
const int nPixels = 512 * 424;
std::vector<CameraSpacePoint> cameraPoints;
cameraPoints.resize(nPixels);
ICoordinateMapper *cm = dev->get_CoordinateMapper();
if (cm != nullptr) {
  cm->MapDepthFrameToCameraSpace(nPixels, &depthPoints[0], nPixels, &cameraPoints[0]);
  cm->Release();
}
// use XYZs in cameraPoints

请注意,这仅在您与设备建立实时连接时有效。如果您之前已将原始深度帧保存到磁盘并读回它们,例如在另一台计算机上,然后查看使用 ICoordinateMapper 函数 GetDepthCameraIntrinsicsGetDepthFrameToCameraSpaceTable 并将该数据与帧一起保存以允许离线转换为 XYZ。

编辑:

为了轻松入门:

关于c++ - 如何在 C++ 中从 Kinect 获取 XYZ 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645442/

相关文章:

swift - 如何在 RealityKit 中为变换设置动画

c++ - 从 C++ 中与 C 灵活数组成员互操作的正确方法是什么?

c++ - 目标文件中未解析的外部符号

python - 我的神经网络有什么问题,它给出了错误的预测

android - 我们如何创建标记?我们可以使用它来获取使用增强现实的相机 View 中显示的建筑物的位置吗?

iPhone SDK 3.0 相机访问

c++ - 对枚举值进行模板化以选择句柄打开/关闭

c++ - 在 C++ 中使用 OpenMP 并行化递归函数

android - 使用opencv在android中处理直播流视频

OpenCV:如何将 CV_8UC1 mat 转换为 CV_8UC3