Значения глубины, возвращаемые датчиком kinect, соответствуют расстоянию реального мира z (в мм) от плоскости xy. До сих пор я не могу найти ничего в последнем sdk, который возвращает что-либо подобное для координат x и y. Это предусмотрено в sdk? В противном случае, что было бы хорошим способом вычисления x и y?Как определить «реальные» координаты x, y из данных глубины кинэкта?
4
A
ответ
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]);
}
}
}