c++ - 将 cv::Mat 转换为 const CvMat* 或 CvMat*

标签 c++ opencv

我只知道 C 语言,所以我很困惑/不理解 openCV 数据类型的语法,尤其是 cv::Mat, CvMat* , 垫子。

我的问题是如何将 cv::Mat 转换为 const CvMat* 或 CvMat*,谁能提供文档链接CvMat *matcv::Matopencv2.4 中的Mat 的区别。

以及如何将我的 int 数据转换为 CvMat 中的 float 数据? 谢谢

最佳答案

cv::Mat 有一个 operator CvMat()如此简单的作业:

cv::Mat mat = ....;
CvMat cvMat = mat;

这使用相同的基础数据,因此您必须注意 cv::Mat 不会在 CvMat 之前超出范围。

如果您需要在采用CvMat* 的API 中使用CvMat,则传递对象的地址:

functionTakingCmMatptr(&cvMat);

至于cv::MatMat的区别,它们是一样的。在 OpenCV 示例中,通常假设(我认为这不是一个好主意)使用了 using namespace cv

关于c++ - 将 cv::Mat 转换为 const CvMat* 或 CvMat*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11027574/

相关文章:

c++ - 如何使用 C++ 编辑文本文件

c++ - 为什么 STD vector 在分配时不调用默认构造函数?

c# - 如何将 Python 版本 3 与 .Net 集成

python - 与 ORB python opencv 匹配特征

c++ - OpenCV 子矩阵访问 : copy or reference?

Opencv 2.4.5 报错

c++ - 带有 cin 实现问题的指针

c++ - QT DEFINES 是否与 C++ 中的#define 做同样的事情?

C++ 模板和访问命名空间

python - 试图将视频保存到文件夹中,但它显示 0 KB。问题是什么?