在我的Kinect项目中,我正在尝试使用Kinect传感器创建点云。当显示3D点时,我得到一个倾斜的模型,其中墙壁和地板是弯曲的。
编辑:我正在使用微软的Kinect SDK。这个点云是在距离墙壁一两英尺处传感器的情况下产生的。
答案 0 :(得分: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);
}