Я работаю над приложением позиционирования с помощью Kinect и хочу отобразить его в приложении для Android. Я получил значение глубины в метрах, и оно имеет отрицательное значение, поскольку нулевая координата находится в центре Kinect. Я все еще путаюсь, как получить координаты пикселей и расчеты к реальному значению. Может кто-нибудь дать мне совет, или как его отобразить в Android? Это часть кода:
if (dataReceived)
{
foreach (Body body in _bodies)
{
if (body.IsTracked)
{
IReadOnlyDictionary<JointType, Joint> joints = body.Joints;
Dictionary<JointType, Point> jointPoints = new Dictionary<JointType, Point>();
foreach (JointType jointType in joints.Keys)
{
// sometimes the depth(Z) of an inferred joint may show as negative
// clamp down to 0.1f to prevent coordinatemapper from returning (-Infinity, -Infinity)
CameraSpacePoint position = joints[jointType].Position;
if (position.Z < 0)
{
position.Z = InferredZPositionClamp;
}
DepthSpacePoint depthSpacePoint = this.coordinateMapper.MapCameraPointToDepthSpace(position);
jointPoints[jointType] = new Point(depthSpacePoint.X, depthSpacePoint.Y);
}
Joint Head = joints[JointType.Head];
float x = Head.Position.X;
float y = Head.Position.Z;
Поскольку я хочу сделать его двумерным пространством, я использую z в качестве y, потому что я думаю, что координаты y не важны. Мой следующий вопрос: действуют ли координаты Kinect на двумерное пространство?