之前介绍了如何在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:\Matopencv

本文介绍了如何在Matlab中调用OpenCV的C++代码,实现高效处理高光谱数据。首先,需将OpenCV库添加到环境变量中,接着在Matlab中设置编译器为Visual Studio 2010。然后,通过编译.mexw64文件创建可由Matlab调用的函数,这样既能利用Matlab的数据读写和绘图功能,又能借助OpenCV的高性能C++代码。最后,定义接口函数完成两者间的交互。
最低0.47元/天 解锁文章
3649

被折叠的 条评论
为什么被折叠?



