Kinect / PyKinect2

Wrapper to expose Kinect for Windows v2 API in Python
MIT License
496 stars 236 forks source link

How to get the 3d coordinate of the Joint_Points? #77

Open JohnleeHIT opened 4 years ago

JohnleeHIT commented 4 years ago

Any one know how to get the 3d coordinate of the Joint_Points? we can get the 2D coordinate of the Joint_points by using : joint_points = self._kinect.body_joints_to_color_space(joints) Generally, we can get the 3d coordinate from the object "joints" , However, I just can't get the attribute from the object when debugging.

KonstantinosAng commented 4 years ago

if you find a body and write:

joints = body.joints

Then to get the world coordinates of any joint: Example for Right Hand x = joints[PyKinectV2.JointType_HandRight].Position.x y = joints[PyKinectV2.JointType_HandRight].Position.y z = joints[PyKinectV2.JointType_HandRight].Position.z

all points are in meters

JohnleeHIT commented 4 years ago

if you find a body and write:

joints = body.joints

Then to get the world coordinates of any joint: Example for Right Hand x = joints[PyKinectV2.JointType_HandRight].Position.x y = joints[PyKinectV2.JointType_HandRight].Position.y z = joints[PyKinectV2.JointType_HandRight].Position.z

all points are in meters

Got it ,thanks!

jmatthess commented 3 years ago

if you find a body and write:

joints = body.joints

Then to get the world coordinates of any joint: Example for Right Hand x = joints[PyKinectV2.JointType_HandRight].Position.x y = joints[PyKinectV2.JointType_HandRight].Position.y z = joints[PyKinectV2.JointType_HandRight].Position.z

all points are in meters

This code here is almost perfect for my use case but im finding that the y position is giving me values that are negative. i imagine this is because the joint im tracking goes below the cameras current height. but i was wondering if its possible to get the "calibrated" values?

KonstantinosAng commented 3 years ago

The calibration only works for undistorting the RGB or Depth Image and it will help you get accurate data when you perform your own image processing on the RGB or Depth Image. However, the Kinect's tracking algorithm that gives you the joint values cannot be calibrated as we don't know what Microsoft is doing behind it. I am pretty sure they have calibrated their data.

ahmedetihad commented 2 years ago

if you find a body and write:

joints = body.joints

Then to get the world coordinates of any joint: Example for Right Hand x = joints[PyKinectV2.JointType_HandRight].Position.x y = joints[PyKinectV2.JointType_HandRight].Position.y z = joints[PyKinectV2.JointType_HandRight].Position.z

all points are in meters

thanx that's help me