/** @brief Convert hppiMatrix to Mat. This function allocates and initializes new matrix (if needed) that has the same size and type as input matrix. Supports CV_8U, CV_16U, CV_16S, CV_32S, CV_32F, CV_64F. @param src input hppiMatrix. @param dst output matrix. @param accel accelerator instance (see hpp::getHpp for the list of acceleration framework types). @param cn number of channels. */ inline void copyHppToMat(hppiMatrix* src, Mat& dst, hppAccel accel, int cn) { hppDataType type; hpp32u width, height; hppStatus sts; if (src == NULL) return dst.release(); sts = hppiInquireMatrix(src, &type, &width, &height); CV_Assert( sts == HPP_STATUS_NO_ERROR); int matType = CV_MAKETYPE(toCvType(type), cn); CV_Assert(width%cn == 0); width /= cn; dst.create((int)height, (int)width, (int)matType); size_t newSize = (size_t)(height*(hpp32u)(dst.step)); sts = hppiGetMatrixData(accel,src,(hpp32u)(dst.step),dst.data,&newSize); CV_Assert( sts == HPP_STATUS_NO_ERROR); }
Mat getMat(const VRmImage *p_source_img) { _VRmImageFormat format = p_source_img->m_image_format; VRmColorFormat color_format = format.m_color_format; CvSize cvSize = CvSize(format.m_width, format.m_height); int cvColor = toCvType(color_format); Mat openCVImg(cvSize, cvColor, (void*) p_source_img->mp_buffer, p_source_img->m_pitch); return openCVImg; }