如何将Emgu::CV::Mat转换为OpenCV::Mat,反之亦然?
我必须在C++/CLI的托管和非托管代码中使用OpenCV 我尝试在托管代码中使用Emgu CV来包装OpenCV对象,但在进行转换时遇到了问题 我该如何做这样的事情:如何将Emgu::CV::Mat转换为OpenCV::Mat,反之亦然?,opencv,image-processing,c++-cli,emgucv,Opencv,Image Processing,C++ Cli,Emgucv,我必须在C++/CLI的托管和非托管代码中使用OpenCV 我尝试在托管代码中使用Emgu CV来包装OpenCV对象,但在进行转换时遇到了问题 我该如何做这样的事情: Emgu::CV::Mat convert = Function_That_Returns_OpenCV_CV_Mat(); 或者这个: Function_That_Takes_OpenCV_CV_Mat(Emgu_CV_Mat_variable); ?从OpenCV垫到Emgu垫: cv::Mat openCvMat =
Emgu::CV::Mat convert = Function_That_Returns_OpenCV_CV_Mat();
或者这个:
Function_That_Takes_OpenCV_CV_Mat(Emgu_CV_Mat_variable);
?从OpenCV垫到Emgu垫:
cv::Mat openCvMat = Function_That_Returns_OpenCV_CV_Mat();
System::IntPtr openCvMatSystemIntPtr = openCvMat.ptr;
Emgu::CV::Mat^ result =
Emgu::CV::CvInvoke::CvArrToMat(
openCvMatSystemIntPtr, false, false, 0);
另一个方向呢?这对我来说有点不安全。在这一点上,openCvMat和result是否都会声明指针的所有权(因为您没有复制内存,因为您将该参数指定为false),并且其中一个可以很容易地在另一个之前处理?