psi icon indicating copy to clipboard operation
psi copied to clipboard

Question: Convert Azure Kinect Joint Point to 3D pixel point

Open LeebHelmut opened this issue 4 years ago • 1 comments

Hello, until now we were using the ToColorSpace method from the IDepthDeviceCalibrationInfo to get the different 2D pixel points of a body.

For further investigations of what a person does we would like to get the depth information as well. Is there a possibility to transfer the body points (e.g. body.Joints[joint].Pose.Origin) to 3D pixel points?

Many thanks in advance

LeebHelmut avatar May 06 '21 04:05 LeebHelmut

Here are a couple different approaches I could think of:

  1. Get the color space pixel point as before, but then pass that to ProjectToCameraSpace(IDepthDeviceCalibrationInfo, Point2D, Shared<DepthImage>) method in CalibrationExtensions.cs.

  2. Compute a Line3D from the camera position through the 3D joint position, and intersect with the depth mesh using IntersectLineWithDepthMesh(ICameraIntrinsics depthIntrinsics, Line3D line, DepthImage depthImage) method in CalibrationExtensions.cs.

Hopefully one of those can work for you!

sandrist avatar May 06 '21 17:05 sandrist