Я узнал ответ. Я использовал изображение глубины, которое не является координатами реального мира. Я использовал класс CoordinateMapper в Kinect SDK для преобразования изображения глубины в 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);
}
Обеспечить немного больше деталей, как: используете ли вы «официальную» Kinect API или libkinect, и как далеко Kinect был от стен. –
Я использовал SDK от Microsoft. Стены находятся примерно в футе от Kinect. – user977198
Не могли бы вы подробно рассказать о том, как вы производите координаты x, y для облаков точек? Используете ли вы значения искажения ИК-датчика? – Sassa