4

在我的 Kinect 项目中,我正在尝试从 Kinect 传感器创建点云。显示 3D 点时,我得到了一个倾斜的模型,其中墙壁和地板是弯曲的。

编辑:我正在使用微软的 Kinect SDK。这个点云是在传感器离墙一两英尺远的情况下生成的。

Kinect 示例

4

1 回答 1

5

我找到了答案。我使用的是深度图像,它不是真实世界的坐标。我使用 Kinect SDK 中的 CoordinateMapper 类将深度图像转换为 SkeletonPoints,这是真实世界的坐标。

它会是这样的:

using (DepthImageFrame depthFrame = e.OpenDepthImageFrame()) {
  DepthImagePixel[] depth = new DepthImagePixel[depthFrame.PixelDataLength];
  SkeletonPoint[] realPoints = new SkeletonPoint[depth.Length];

  depthFrame.CopyDepthImagePixelDataTo(depth);

  CoordinateMapper mapper = new CoordinateMapper(sensor);
  mapper.MapDepthFrameToSkeletonFrame(DEPTH_FORMAT, depth, realPoints);
}
于 2013-04-07T23:17:54.963 回答