Opencv(C++)和matlab之间通过mat传递数据(矩阵) | 您所在的位置:网站首页 › opencv与matlab › Opencv(C++)和matlab之间通过mat传递数据(矩阵) |
1.问题描述
最近做科研项目的时候碰到了在C++里面利用opencv计算得到了矩阵,但是需要在matlab里面核对矩阵内容并做下一步处理,因此需要在C++(针对opencv)和matlab之间进行矩阵数据的传递。 2.解决办法一开始想的是,能不能把opencv产生的矩阵数据写到xml文件,然后matlab读取,但是实际操作过程中,发现matlab读取xml文件的矩阵数据,在转化到能处理的形式的这个过程太耗时了,十分不理想。我要处理的是视频流产生的矩阵数据,用xml的方法肯定是不行的。 接下来尝试用matio(https://sourceforge.net/p/matio/)这个库,这是一个C的用于mat文件读写的库(Mat IO)。下面讲一下这个库的安装以及应用: 2.1 matio库的安装matio库的安装可以通过源码编译,也可以直接apt-get安装。我是在ubuntu下面跑的程序,所以为了方便,直接在终端输入 sudo apt-get install libmatio-dev 2.2 matio库的使用下面可以写一个测试的小程序,首先构建测试文件目录 mkdir test_matio cd test_matio touch test.cpp touch CMakeLists.txt因为要引用matio的动态链接库,为了方便起见,直接把matio.h和libmatio.so拷贝到了test_matio目录下面。所以现在的test_matio目录下面一共就有4个文件了。接下来写测试代码: #include #include #include "matio.h" #include using namespace std; using namespace cv; int main() { Mat test = (Mat_(3,2) |
CopyRight 2018-2019 实验室设备网 版权所有 |