如何将OpenCV Mat
对象转换为cvMat
对象?
根据此OpenCV互操作性文档(1),应该可以进行此转换。但是在声明cvMat
时,编译器会在行cvMat deprecatedImg
:错误:<在'deprecatedImg'>之前预期';',
如何解决这个问题?
答案 0 :(得分:5)
在OpenCV 3及更高版本中,您必须使用兼容性标头(types_c.h
)来使用弃用的C对象,例如cvMat
。在OpenCV 3.0中,CvMat
有一个接受Mat
(1)的构造函数。代码如下。
#include "opencv2/core/types_c.h"
cv::Mat img = ... ;
CvMat deprecatedImg(img);
在OpenCV 2.4。*及更低版本中,Mat
到CvMat
转换运算符(2)存在,您只需将Mat
指定为CvMat
即可下面。请注意,此转换运算符不再存在于OpenCV 3及更高版本中。
Mat img = ...;
CvMat cvMatImg = img;