如何将数据从cv :: Mat复制到CvMat,反之亦然?
答案 0 :(得分:9)
根据documentation for cv::Mat,cv::Mat
有一个构造函数,它接受CvMat *
参数和operator CvMat()
成员函数。因此,可以很容易地在两者之间进行复制。
cv::Mat m;
// populate m
CvMat n = m; // cv::Mat::operator CvMat() const;
m = cv::Mat(&n); // cv::Mat::Mat(const CvMat* m, bool copyData = false);
// or
m = cv::Mat(&n, true); // to copy the data
答案 1 :(得分:1)
根据opencv文档(http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html):
“从Mat到CvMat或IplImage的向后转换是通过强制转换运算符Mat :: operator CvMat()const和Mat :: operator IplImage()提供的。运算符不会复制数据。”