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