mex调用opencv

date: 2018-9-21
最近在学习opencv3,突然想到matlab能不能用opencv,下面是笔记。

使用mex

不用多说,首先肯定是能正常使用mex,需要安装c++环境,由于我使用的是Windows,所以visual studio是最好的,当然mingw也行。安装好后,直接运行:

mex -setup c++

显示为:

MEX 配置为使用 'Microsoft Visual C++ 2017' 以进行 C++ 语言编译。

警告不用管它,接下来需要使用opencv。

调用openCV

我将openCV安装在了D:\Program Files\opencv这个目录,当编写好c++文件后,有两种调用方式,注意这里文件名是featureExtra.cpp,改成你自己的就可以了。

% 第一种,其中最后面的opencv_worldxxx根据版本的不同而不同,
% 具体的在-L的目录下,vcxx表示visualstuio的版本,这里是vc15
% 3.4.3版本的lib目录下面只有这一个lib文件,根据实际情况进行修改。
mex -g featureExtra.cpp -I"D:\Program Files\opencv\build\include" -L"D:\Program Files\opencv\build\x64\vc15\lib" -lopencv_world343

% 第二种是用eval命令,看起来会简洁点
% 借鉴的kernlen的博客:https://blog.csdn.net/kernlen/article/details/52513205
OpenCV_INLCUDE_DIR = '-I"D:\Program Files\opencv\build\include"';
OpenCV_LIBRARY_DIR = '-L"D:\Program Files\opencv\build\x64\vc15\lib" -lopencv_world343';
 
eval(['mex featureExtra.cpp ' OpenCV_INLCUDE_DIR OpenCV_LIBRARY_DIR]);  

第二种会报找不到库文件的错误,是由于-L没有起作用,没找到具体原因,很奇怪。

你可能感兴趣的:(mex调用opencv)