none
How to get camera's position? RRS feed

  • Question

  • I have already known how that we can get the joints' positions (x, y, z, w), so it's in depth camera space, but how about the color camera's position?. Because in a video frame ready event handler. we do not have any clue about positions?. Or we just get the color camera's position by getting the relative distance from the color camera and the depth camera, if so how to do it?. Finally I want to get the two camera's position.

    Anybody helps me, please? Thank in advance.

    Monday, August 22, 2011 7:42 AM

Answers

  • There actually are methods to project from skeleton space (where joints are defined) into depth image pixel space and back:

    SkeletonEngine.SkeletonToDepthImage
    SkeletonEngine.DepthImageToSkeleton

    And methods to project from depth image pixel space into color image pixel space:

    Camera.GetColorPixelCoordinatesFromDepthPixel

    The cameras are in fact very close, but far enough apart to produce a parallax effect that is somewhat subtle but noticeable by many people. That is why a projection function exists.

    Hopefully this helps,
    Eddy


    I'm here to help
    Monday, August 22, 2011 8:48 PM

All replies

  • Hi pnt1614.

     

    I'm not exactly sure what you're asking here. The colour camera will only ever return the colour image, and the depth camera any depth and positional stuff.

    Are you asking for:

    a)the position of the camera?

    b)the position of the person according to the colour image?

     

    if (a) I'm not entirely sure what you mean or you're trying to achieve!

    if (b) then the cameras are close enough to each other that it makes no difference - I've mapped a skeleton on top of the colour stream in my application, and there's no way that anyone could ever tell it's being inferred by a different camera, so you may as well just use depth stream positions.

     

    Matt


    • Proposed as answer by Mattazzer Monday, August 22, 2011 1:26 PM
    Monday, August 22, 2011 10:00 AM
  • Thank for replying, Mat.

     

    Let's me explain one more time, I know that the joint's position in skeleton tracking is calculated in Kinect camera depth space, it also means that the depth camera is located at the origin. As you said that the cameras is so close that we can consider they have the same position, at the origin. Thank you

     

    One more thing, I just wonder if the depth is return from the depth sensor, so why do we need the depth projector? and what we can do with it?

     

    Thank you so much, Mat.

     

     

    Monday, August 22, 2011 12:18 PM
  • pnt1614, 

    Please could you be a bit more specific, what do you mean the depth projector?

    Monday, August 22, 2011 1:26 PM
  • There actually are methods to project from skeleton space (where joints are defined) into depth image pixel space and back:

    SkeletonEngine.SkeletonToDepthImage
    SkeletonEngine.DepthImageToSkeleton

    And methods to project from depth image pixel space into color image pixel space:

    Camera.GetColorPixelCoordinatesFromDepthPixel

    The cameras are in fact very close, but far enough apart to produce a parallax effect that is somewhat subtle but noticeable by many people. That is why a projection function exists.

    Hopefully this helps,
    Eddy


    I'm here to help
    Monday, August 22, 2011 8:48 PM
  • Thank you Eddy Escardo-Raffo.

     

    Matt, this is for you

    http://channel9.msdn.com/Shows/TechWithTina/The-tech-behind-Kinect-Major-subsystems-RGB-camera-Depth-Sensor

    Tuesday, August 23, 2011 7:37 AM