之前介绍了如何在c++里调用matlab库函数读取.mat文件,这里介绍如何将完整的c++文件模块化为matlab可以调用的函数。
这个的好处是可以利用matlab方便的数据读写功能以及后续的绘图功能,同时主体部分调用opencv 高效的c++代码。
我用的是matlab2016+visual stdio 2010 + opencv 2.4.9。因为opencv 2.4.9之后的版本不支持visual stdio 2010,请下载vs2015。
1.把opencv库增加到## 标题 ##环境变量
把opencv2.4.9解压到F:\1(自己设置)文件夹,在环境变量里加入如下语句
F:\1\opencv\build\x64\vc10\bin;
其中vc10与vs2010相对应,其它版本请选择相应版本。
2.mex - setup
在matlab里输入 mex - setup
然后点击选择mex -setup C++
把vs2010设置为编译器。
3.编译.mexw64文件
.mexw64文件就相当于matlab函数,输入和输出都是matlab数据类型,但是运行的代码是自己写的c++代码,效率更高。
clear all;
is_64bit = strcmp(computer,'MACI64') || strcmp(computer,'GLNXA64') || strcmp(computer,'PCWIN64');
out_dir='./';
IE:\Matopencv\build\include -IE:\Matopencv\build\include\opencv -IE: