如何通过指针c ++克隆一个mat数组

How to clone an mat array by pointer c++

我是 opencv 的新手,我有一个使用 IplImage 的程序,但我想更新到 Mat,所以有些地方我不知道如何修改程序,例如这一行:

 void setDataToWork(Mat* sources)/* Before it was IplImage* sources*/
   {
        src = sources ;
        ...
        ...
     {
        /*segm = cvCloneImage( sources ) ;*/ 
        /*ch_h = cvCloneImage( segMsk )*/;          
         sources->clone();
     }

  }

我需要克隆源代码 ch_h,但我不知道如何正确地进行。

提前致谢

您不能将所有出现的 IplImage 替换为 cv::Mat,因为 API 已完全更改,一些方法不存在,一些已重命名等。 你唯一能做的就是通过下面的构造函数

为你的旧IplImage创建一个包装器cv::Mat对象
cv::Mat(const IplImage* img, bool copyData=false);

实践中:

IplImage* iplImage = ...

cv::Mat matFromIpl(iplImage);

// use matFromIpl from here