mxVision很多是类似cuda的搞法 主要还是围绕gstreamer
下面是常用转换:
1.opencv转MemoryData
待定
2.DvppDataInfo下载转opencv
int DvppDataSavejpg(DvppDataInfo& output, std::string jpgname)
{
//测试转换成功
MemoryData hostData(output.dataSize, MemoryData::MEMORY_HOST);
MemoryData deviceSrc(static_cast<void*>(output.data), output.dataSize, MemoryData::MEMORY_DVPP);
int ret = MemoryHelper::MxbsMallocAndCopy(hostData, deviceSrc);
if (ret != APP_ERR_OK)
{
MemoryHelper::MxbsFree(hostData);
output.destory(output.data);
return ret;
}
cv::Mat src(output.heightStride + output.heightStride / 2, output.widthStride, CV_8UC1, (unsigned char*)hostData.ptrData);
cv::cvtColor(src, src, cv::COLOR_YUV2BGR_NV12);
cv::imwrite(jpgname, src);
}
3.MemoryData在GPU下载的转换
//Device to Host 数据复制
APP_ERROR copyDataToHost(MxBase::MemoryData& ho