0
votes

I'm using the Kinect-SDK to track a person. However, the Kinect-SDK is only giving me information about the joints. I would like to get every pixel that is associated with a specific body part or joint.

For example, I want only my hand, foot, or whatever limb to be visible and the rest of the image should be removed. However, I did not find a way to associate a pixel with a specific part of the persons body. The only thing I found was that a depth pixel can be associated with a player but does it get any more specific?

I know that the SDK is labeling the body parts of a tracked person in order to compute the skeleton, but is this information still accessible somehow? http://research.microsoft.com/apps/pubs/default.aspx?id=145347

1
Have a look at the CoordinateMapper - msdn.microsoft.com/en-us/library/jj663707.aspx. I can look at a more detailed answer when I'm at my computer.Nicholas Pappas
@EvilClosetMonkey afaik with the CoordinateMapper I could only map the position of a joint into the color/depth space. However, this does give me only one point but no hint on which pixel is related to which joint. Mapping a color/depth pixel into skeleton space doesn't help either since again e.g. the hand-joint would be exactly one point but not a whole area in skeleton space.lt.ungustl
Indeed, I had missed that point of the question. As @MentohlBonbon mentions, there is no official SDK way to pull that information out. You might be able to use a combination of CoordinateMapper and OpenCV's findContours to pull limbs out.Nicholas Pappas

1 Answers

0
votes

There is an opensource library that you can use for skeleton-tracking. Its called NITE. Find it here: http://www.openni.org/files/nite/#.UX7UT8rOj2k

You can also track hands with this.

In general: The RGB image and the depth image of the kinect map. So you can find out about the position of a hand in the depth image and then draw a circle at that position in the rgb image. Works great with e.g. openCV.

If you have more questions just ask, and please be specific.

EDIT :

You get the z-coordinate of the hand. You can use this as a reference and then you can threshold in the area of the hand(everything that is too far in terms of x or y cannot belong to the hand).

With OpenCV and it's function findContours you could find the area of the hand in the image and then color that area in another image the way you want it.