如何在OpenCV 3.0中将Mat转换为cvMat

时间:2015-03-25 02:24:51

标签: opencv3.0 opencv-mat

如何将OpenCV Mat对象转换为cvMat对象?

根据此OpenCV互操作性文档(1),应该可以进行此转换。但是在声明cvMat时,编译器会在行cvMat deprecatedImg

处给出以下错误消息
  

:错误:<在'deprecatedImg'>之前预期';',

如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

在OpenCV 3及更高版本中,您必须使用兼容性标头(types_c.h)来使用弃用的C对象,例如cvMat。在OpenCV 3.0中,CvMat有一个接受Mat1)的构造函数。代码如下。

#include "opencv2/core/types_c.h"
cv::Mat img = ... ;
CvMat deprecatedImg(img);

在OpenCV 2.4。*及更低版本中,MatCvMat转换运算符(2)存在,您只需将Mat指定为CvMat即可下面。请注意,此转换运算符不再存在于OpenCV 3及更高版本中。

Mat img = ...;
CvMat cvMatImg = img;