2012-06-19 4 views
4

Значения глубины, возвращаемые датчиком kinect, соответствуют расстоянию реального мира z (в мм) от плоскости xy. До сих пор я не могу найти ничего в последнем sdk, который возвращает что-либо подобное для координат x и y. Это предусмотрено в sdk? В противном случае, что было бы хорошим способом вычисления x и y?Как определить «реальные» координаты x, y из данных глубины кинэкта?

ответ

6

Вы можете использовать метод KinectSensor.MapDepthToSkeletonPoint, который возвращает SkeletonPoint. Код примера может быть

using (DepthImageFrame depthimageFrame = e.OpenDepthImageFrame()) 
     { 
      if (depthimageFrame == null) 
      { 
       return; 
      } 

      pixelData = new short[depthimageFrame.PixelDataLength]; 

      depthimageFrame.CopyPixelDataTo(pixelData); 

      for (int x = 0; x < depthimageFrame.Width; x++) 
      { 
       for (int y = 0; y < depthimageFrame.Height; y++) 
       { 
         SkeletonPoint p = sensor.MapDepthToSkeletonPoint(DepthImageFormat.Resolution640x480Fps30, x, y, pixelData[x + depthimageFrame.Width * y]);       
       } 
      } 

     }