I'm wondering how I can query the actual range of the depth values, since they are device-specific. As it seems, PXCCapture::Device::QueryDSMinMaxZ is supposed to do the job, according to the documentation , but it won't. When I call
PXCSession *session = PXCSession_Create(); PXCSenseManager *senseManager = session->CreateSenseManager(); senseManager->EnableStream( PXCCapture::STREAM_TYPE_DEPTH ); senseManager->Init(); PXCCaptureManager *cm = this->senseManager->QueryCaptureManager(); PXCCapture::Device *device = cm->QueryDevice(); PXCRangeF32 range = device->QueryDSMinMaxZ();
I get a range of [0 65535], thus the range of the datatype in use for depth pixels. I don't think this is the purpose of the function. Is there something I'm missing or doing wrong?
Thanks for your reply. Not sure what you're saying, though.
Did you mean QueryDepthUnit? QueryDepthUnit returns 1000, according to the documentation that's μm . Which means, the depth values are specified in mm, which is what I was assuming in the first place. Now this would give the R200 a depth range of 0.00 to 65.54 meters.
What I am expecting to get are the depth ranges for the respective cameras, such as [270 520] for F200 and [600 1400] for R200. Is there no way to do so? Isn't this, what these methods are there for?