将数据从cv :: Mat复制到CvMat并反之亦然
答
根据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
'CvMat n = m;'不要复制数据? – mrgloom 2015-10-12 16:02:21
答
根据OpenCV的文档(http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html):
“向后转换从垫到或与CvMat IplImage的经由转换运算符垫提供::运算与CvMat()const的和Mat ::运算的IplImage()。操作员不会复制数据。“
[convert cv :: Mat to const CvMat \ * or CvMat \ *]的可能的重复(http://stackoverflow.com/questions/11027574/convert-cvmat-to-const-cvmat-or-cvmat) – Kiran 2015-04-09 15:18:28