Я знал, что камера kinect v2 может определять положение сустава скелета, но мне нужно знать, как определить (x, y, z) положение определенной точки в комнате с помощью камеры kinect-v2?
положение точки с помощью камеры Kinect V2
Ответы (3)
вы можете взглянуть на библиотеки Vitruvius, так как в них есть то, что вы ищете, например, положение сустава и измерение расстояния.
Это получает координату y левого сустава
Пример совместного кода: body.Joints[JointType.HandLeft].Position.Y
Получает расстояние координат до сенсора Kinect V2.
Пример кода расстояния: Length(_bodies[_token.BodyArrIndex].Joints[JointType.SpineBase].Position)
Ссылка Vitruvius на GitHub: https://github.com/LightBuzz/Vitruvius
Ссылка на соединение жестов Vitruvius GitHub: https://github.com/LightBuzz/Vitruvius/tree/master/Kinect%20v2/WPF/LightBuzz.Vitruvius/Gestures
Веб-сайт Vitruvius: https://vitruviuskinect.com/
Надеюсь, поможет!
Для этого вам нужно использовать CameraSpacePoint Structure
Я приведу вам пример на C#.
Для этого я буду отслеживать левую руку, и я полагаю, что у вас есть косяк.
internal Joint HandLeft;
Чтобы занять позицию, вам нужно использовать это:
CameraSpacePoint pointLeft = HandLeft.Position;
После этого вы можете использовать свою позицию следующим образом:
pointLeft.X
pointLeft.Y
pointLeft.Z
конечно, вы можете сохранить значение в поплавке:
float test = pointLeft.Y;
вы можете определить (x, y, z) положение 1-25 точек человека в kinect v2. (Z) означает расстояние от каждой точки до сенсора kinect. если вам нужно найти каждую точку вашего кадра, вы должны использовать класс ColorFrame, тогда вы можете определить свою любимую позицию с помощью Ellipse, конечно, с позицией XY. Ваш кадр - это кадр 2D-просмотра, поэтому у вас нет позиции z