Advertisement
lamiastella

'void SR300Camera::ConvertPXCImageToOpenCVMat(PXCImage *,cv:

May 23rd, 2017
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.32 KB | None | 0 0
  1. Severity    Code    Description Project File    Line    Suppression State
  2. Error   C2511   'void SR300Camera::ConvertPXCImageToOpenCVMat(PXCImage *,cv::Mat *)': overloaded member function not found in 'SR300Camera' OpenARK-SDK C:\OpenARK\SR300Camera.cpp  283
  3.  
  4. in SR300Camera.h I have:
  5. void ConvertPXCImageToOpenCVMat(PXCImage *inImg, cv::Mat *outImg);
  6. in SR300Camera.cpp I have:
  7.  
  8. void SR300Camera::ConvertPXCImageToOpenCVMat(PXCImage *inImg, cv::Mat *outImg) {
  9.     int cvDataType;
  10.     int cvDataWidth;
  11.  
  12.  
  13.     PXCImage::ImageData data;
  14.     inImg->AcquireAccess(PXCImage::ACCESS_READ, &data);
  15.     PXCImage::ImageInfo imgInfo = inImg->QueryInfo();
  16.  
  17.     switch (data.format) {
  18.         /* STREAM_TYPE_COLOR */
  19.     case PXCImage::PIXEL_FORMAT_YUY2: /* YUY2 image  */
  20.     case PXCImage::PIXEL_FORMAT_NV12: /* NV12 image */
  21.         throw(0); // Not implemented
  22.     case PXCImage::PIXEL_FORMAT_RGB32: /* BGRA layout on a little-endian machine */
  23.         cvDataType = CV_8UC4;
  24.         cvDataWidth = 4;
  25.         break;
  26.     case PXCImage::PIXEL_FORMAT_RGB24: /* BGR layout on a little-endian machine */
  27.         cvDataType = CV_8UC3;
  28.         cvDataWidth = 3;
  29.         break;
  30.     case PXCImage::PIXEL_FORMAT_Y8:  /* 8-Bit Gray Image, or IR 8-bit */
  31.         cvDataType = CV_8U;
  32.         cvDataWidth = 1;
  33.         break;
  34.  
  35.         /* STREAM_TYPE_DEPTH */
  36.     case PXCImage::PIXEL_FORMAT_DEPTH: /* 16-bit unsigned integer with precision mm. */
  37.     case PXCImage::PIXEL_FORMAT_DEPTH_RAW: /* 16-bit unsigned integer with device specific precision (call device->QueryDepthUnit()) */
  38.         cvDataType = CV_16U;
  39.         cvDataWidth = 2;
  40.         break;
  41.     case PXCImage::PIXEL_FORMAT_DEPTH_F32: /* 32-bit float-point with precision mm. */
  42.         cvDataType = CV_32F;
  43.         cvDataWidth = 4;
  44.         break;
  45.  
  46.         /* STREAM_TYPE_IR */
  47.     case PXCImage::PIXEL_FORMAT_Y16:          /* 16-Bit Gray Image */
  48.         cvDataType = CV_16U;
  49.         cvDataWidth = 2;
  50.         break;
  51.     case PXCImage::PIXEL_FORMAT_Y8_IR_RELATIVE:    /* Relative IR Image */
  52.         cvDataType = CV_8U;
  53.         cvDataWidth = 1;
  54.         break;
  55.     }
  56.  
  57.     // suppose that no other planes
  58.     if (data.planes[1] != NULL) throw(0); // not implemented
  59.                                           // suppose that no sub pixel padding needed
  60.     if (data.pitches[0] % cvDataWidth != 0) throw(0); // not implemented
  61.  
  62.     outImg->create(imgInfo.height, data.pitches[0] / cvDataWidth, cvDataType);
  63.  
  64.     memcpy(outImg->data, data.planes[0], imgInfo.height*imgInfo.width*cvDataWidth * sizeof(pxcBYTE));
  65.  
  66.     inImg->ReleaseAccess(&data);
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement