4 Replies Latest reply on Jul 26, 2017 4:06 AM by jb455

    MapColorToDepth() is always failure

    ZHOUXUAN

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

      this is the definition:

       

      pxcStatus MapColorToDepth(PXCImage *depth, pxcI32 npoints, PXCPointF32 *pos_ij, PXCPointF32 *pos_uv);

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

       

        • 1. Re: MapColorToDepth() is always failure
          MartyG

          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);

          • 2. Re: MapColorToDepth() is always failure
            ZHOUXUAN

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

            • 3. Re: MapColorToDepth() is always failure
              MartyG

              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?

              • 4. Re: MapColorToDepth() is always failure
                jb455

                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?