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

Arm*_*irn 1 opencv3.0 opencv-mat

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

根据此OpenCV互操作性文档(1),应该可以进行此转换.但是在声明时cvMat,编译器在行下面给出了以下错误消息cvMat deprecatedImg

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

如何解决这个问题?

Kir*_*ran 5

在OpenCV 3及更高版本中,您必须使用compatability headers(types_c.h)来使用不推荐使用的C对象cvMat.在OpenCV 3.0中,CvMat有一个接受Mat(1)的构造函数.代码如下.

#include "opencv2/core/types_c.h"
cv::Mat img = ... ;
CvMat deprecatedImg(img);
Run Code Online (Sandbox Code Playgroud)

在OpenCV中2.4.*和下面,Mat对CvMat转换运算符(2)存在,则可以简单地分配一个Mat到CvMat如下.请注意,此转换运算符不再存在于OpenCV 3及更高版本中.

Mat img = ...;
CvMat cvMatImg = img;
Run Code Online (Sandbox Code Playgroud)