MATLAB-2016b+VS2017+OpenCV-3.4.1+mexopencv-3.3.1

使用mexopencv-3.3.1实现matlab与opencv混编

1.下载安装MATLAB-2016b、VS2017、OpenCV-3.4.1、mexopencv-3.3.1。

2.下载并在matlab中添加msvc2017.xml和msvcpp2017.xml。

3、下载并安装tdm64-gcc-4.9.2.exe

4、打开matlab,在命令框输入:

>>mex -setup

5、在matlab中输入如下:

>>pathtool

将mexopencv的文件路径都添加进去。

6、在matlab输入

>>mexopencv.make('opencv_path', 'F:\opencv\opencv3.4.1\mybuild_win64\install')

以上路径需要根据自己opencv的实际安装路径填写(一般添加opencv的build文件夹路径)。

然后会经过一段比较长的时间进行编译。编译结束后即完成。

7、测试

matlab中新建test.m文件,内容如下:

E= ones(3, 3);
decomp = cv.decomposeEssentialMat(E);

运行,decomp运算成功。

 

 

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab2015bopencv2413配置vs2013win1064位-RGBtoGRAY.txt 本帖最后由 yz琳儿 于 2017-1-26 12:57 编辑 以下信息转自博文MATLAB与C 混合编程(依赖OPENCV),感谢作者zouxy09。在此基础上根据版本需求做了相应更改,亲测成功。下面均系个人看法,欢迎大家批评指正。 首先mex -setup,这个指令任何版本的配置都要有,目的是安装c 编译器,然后选择mex -setup C 即可。(第一次配置需要输入,以后不用) 接下来,网上一般会说mex -v,但是matlab2015b下,输入会报错                                                                          Verbose mode is on.                                                                          Error using mex。。                                                                          Not enough input arguments. 原因是在2014版本(貌似)之后matlab并没有mexopts.bat这个配置文件,取而代之的是mex_C _win64.xml文件,因此采用上述博文的配置方法。 具体为: 1.将。。(opencv的路径)\opencv\build\x64\vc12\bin 添加入环境变量path,之后需要重启机器。 (注意:vs2013对应的是vc12,如果是vs2015,需要将路径\vc12\bin修改为\vc14\bin) 2.打开matlab,更改附件中的cppMake.m       a.程序第14行 CPPFLAGS = ' -O -DNDEBUG -I.\ -IG:\software\opencv\build\include';  %%红色需要改为自己的路径       b.程序第15行 LDFLAGS = ' -LG:\software\opencv\build\x64\vc12\lib';  %%红色需要改为自己的路径 (当然,步骤1,2,如果是32为机器,x64相应改为x86。不过我没有测试) (注意:vs2013对应的是vc12,如果是vs2015,需要将路径\vc12\lib修改为\vc14\lib) 3.将附件中的 RGBtoGRAY.cpp 测试文件置于cppMake.m所在文件夹下,输入cppMake完成测试,会在文件夹下生成 RGBtoGRAY.mexw64。接着就可调用该函数,比如                                                                         img=RGBtoGRAY;                                                                         imshow); 4.之后大家可以任意编写.cpp文件(具体可参考网上的mexFunction编写),完成matlab的调用 错误集锦: 1.编译.cpp成功,然并没有生成.mexw64文件。(程序第14行,也就是include的路径,引号与-o之间是有空格符的) 2.报错                                                                         Error using mex                                                                         MEX cannot find library 'argeArrayDims-LG:\software\opencv\build\x64\vc12\lib' specified with the -l option. (同上,程序第15行,也就是lib的路径,引号与-L之间是有空格符的) 3.报错                                                                        Error using mex                                                                        MEX cannot find library 'opencv_highgui2413' specified with the -l option. (同上,程序第16行,也就是lib库名称,引号与第一个-l之间是有空格符的,且相邻两个-l之间是有空格符的) 4.编译.cpp成功,生成.mexw64文件,但是调用函数时报错                                                                        invalid mex file...找不到指定模块 (确认配置方法的第一步,添加path之后,需要重启机器) 5.编译.cpp成功,生成.mexw64文件,但是调用函数时报错                                                                        can't open input file (程序第16行,也就是lib库名称,库名称结尾是2413,不是2413d)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值