Items with no label
3335 Discussions

MapColorToDepth() is always failure

xzhou15
Beginner
1,615 Views

I use c++ ,when I use the MapColorToDepth(),always failure

this is the definition:

https://software.intel.com/sites/landingpage/realsense/camera-sdk/v1.1/documentation/html/pxcstatus.html pxcStatus MapColorToDepth(https://software.intel.com/sites/landingpage/realsense/camera-sdk/v1.1/documentation/html/pxcimage.html PXCImage *depth, pxcI32 npoints, https://software.intel.com/sites/landingpage/realsense/camera-sdk/v1.1/documentation/html/pxcpointf32.html PXCPointF32 *pos_ij, https://software.intel.com/sites/landingpage/realsense/camera-sdk/v1.1/documentation/html/pxcpointf32.html PXCPointF32 *pos_uv);

I find when just npoints=0,the pxcStatus is STATUS_NO_ERROR。when the npoints=ijmap.size(),it's error

0 Kudos
4 Replies
MartyG
Honored Contributor III
314 Views

I am not a RealSense stream programming expert, so I apologize if my answer is not helpful. I spent a while carefully checking through your script and comparing sections of it to scripts on the internet.

I could find no examples where ijmap is used with the push_back instruction. Are you sure that it should not be iMap? I.e

iMap.push_back(ppoint);

0 Kudos
xzhou15
Beginner
314 Views

Thank you,I use c++,ijmap is a vector,I used a similar function such as pxcStatus PXCAPI ProjectDepthToCamera(pxcI32 npoints, PXCPoint3DF32 *pos_uvz, PXCPoint3DF32 *pos3d);It's successful。

0 Kudos
MartyG
Honored Contributor III
314 Views

Ok, sorry. Like I said, stream programming is not my expert area. I wanted to try to help though.

So you have got your program working successfully now?

0 Kudos
jb455
Valued Contributor II
314 Views

Should your inputs be arrays instead of vectors maybe? I haven't done much with c++ so don't know if they're equivalent but it may be worth a try! Or does your working ProjectDepthToCamera call use vectors successfully? The only other thing I can think of is whether you've initialised your projection instance? (ie, you've called Device.CreateProjection())

Edit:

Actually, it looks like you're giving the method a single PXCPoint by using ijmap[0] instead of ijmap - in C# at least (may be different with C++) if you want to project a single point you need to give it an array with a single item in, not the point itself. Is that the issue?

0 Kudos
Reply