2013-04-02 86 views
4

在我的Kinect項目中,我試圖用Kinect傳感器創建點雲。當顯示3D點時,我得到一個傾斜的模型,其中牆壁和地板是彎曲的。Kinect點雲弧形牆

編輯:我正在使用微軟的Kinect SDK。這個點雲是在傳感器離牆一英尺遠的地方產生的。

Kinect Example

+0

提供更多的細節,如:無論您使用的是「官方」 Kinect的API或libkinect,並有多遠Kinect的是從牆上。 –

+0

我使用了微軟的SDK。牆壁離Kinect大約一英尺遠。 – user977198

+0

您可否詳細說明一下如何生成點雲的x,y座標?你是否使用IR傳感器的失真值? – Sassa

回答

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); 
}