【问题标题】:Kinect Point Cloud Curved WallsKinect 点云曲面墙
【发布时间】:2013-04-02 00:30:02
【问题描述】:

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

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

【问题讨论】:

  • 提供更多细节,例如:您使用的是“官方”Kinect API 还是 libkinect,以及 Kinect 离墙壁有多远。
  • 我使用了微软的 SDK。墙壁距离 Kinect 大约一英尺。
  • 您能否详细说明如何为点云生成 x,y 坐标?您是否使用 IR 传感器的失真值?
  • 这种“桶形失真”发生在近距离,仅在水平轴上,是 Kinect 工作方式的产物。有关详细信息,请参阅第 35 页 this paper
  • @Chrys x 和 y 是深度图像的像素坐标。这些值本质上是 Kinect 传感器作为深度数据返回的值。我不知道红外传感器的失真值是多少。

标签: 3d kinect point-clouds


【解决方案1】:

我找到了答案。我使用的是深度图像,它不是真实世界的坐标。我使用 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 2015-01-10
    • 2012-06-16
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多