如何将 Emgu::CV::Mat 转换为 OpenCV cv::Mat,反之亦然?

How do I convert Emgu::CV::Mat to OpenCV cv::Mat and vice versa?

我必须在 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 Mat 到 Emgu Mat:

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