在我的 Kinect 项目中,我正在尝试从 Kinect 传感器创建点云。显示 3D 点时,我得到了一个倾斜的模型,其中墙壁和地板是弯曲的。
编辑:我正在使用微软的 Kinect SDK。这个点云是在传感器离墙一两英尺远的情况下生成的。
在我的 Kinect 项目中,我正在尝试从 Kinect 传感器创建点云。显示 3D 点时,我得到了一个倾斜的模型,其中墙壁和地板是弯曲的。
编辑:我正在使用微软的 Kinect SDK。这个点云是在传感器离墙一两英尺远的情况下生成的。
我找到了答案。我使用的是深度图像,它不是真实世界的坐标。我使用 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);
}