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没有起作用,没找到具体原因,很奇怪。