matlab调用opencv函数库,MATLAB配置mexopencv

平台:win10 x64+VS 2015+Matlab R2018b+opencv_python-3.4.1+mexopencv3.4.1

问题来源:最近在做图像拼接的论文, 在opencv中有很多现成实现追踪的函数,想用那些函数来进行一个调试,由于MATLAB有更加强大的矩阵库,众多的工具箱,以及更加便捷的可视化及调试工具,所以打算在MATLAB中调用opencv库中的函数,在此记录一下配置的过程。

mexopencv用于OpenCV库的matlab mex函数的集合和开发工具包。mexopencv是针对特定的OpenCV版本开发的,所以必须使用对应的opencv和mexopencv版本。在此将介绍在MATLAB上配置OpenCV3.4.1和mexopencv的过程。

1.mexopencv简介

(1)mexopencv将大多数opencv中常用的接口集合成Matlab工具,在Matlab中可以随意的调用。

(2)mexopencv官网的教程说的比较繁杂,琢磨了一晚上后发现其实配置过程就是很简单的几步。

(3)上边连接是最新版的,也就是opencv3.x。当然你也可以配置opencv2.4.X,

2.下载配置opencv

(1)下载opencv,点击打开链接,根据自己的需求决定下载3.X还是2.4.x,这一步在我博客也有:https://www.cnblogs.com/Alliswell-WP/p/opencv3OfcontribAdd.html

(2)下载成功后会得到opencv.exe文件,双击解压到合适的位置,我的为:D:\ProgramFiles\OpenCV3.4.1_x64

(3)编辑系统环境变量Path,根据自己的编译器和操作系统决定,如:D:\OpenCV\build\x86\vc10\bin  为32位操作系统,VS2010编译器

注:32位操作系统为x86,64为操作系统为x64,Matlab的位数最好与操作系统一致。我的为:D:\ProgramFiles\OpenCV3.4.1_x64\opencv\build\x64\vc14\bin

vc10--vs2010  vc11--vs2012  vc12--vs2013 vc14--vs2015

opencv3.X只支持64位,编译器为vs2013及以上版本

3.下载mexopencv

(1)如果您的opencv是3.X,在这里下载:https://github.com/kyamagu/mexopencv

(2)如果您的opencv是2.4.x,在这里下载:https://github.com/kyamagu/mexopencv/tree/v2.4

(3)下载之后将压缩包解压到合适位置,我的为:D:\Working\Matlab\mexopencv-master

4. 在Matlab中配置mexopencv

(1)Matlab中设置mexopencv路径:将mexopencv的所有文件夹极其子文件夹(我的是:D:\Working\Matlab\mexopencv-master)添加到工作目录。

(2)设置编译器:在MATLAB的命令行中输入>>mex -setup ,后点击“mex -setup C++”

(3)很关键的一步,我们需要修改mexopencv里的一些参数,不然会报错

首先需要将mexopencv3_4_1\+mexopencv目录下的make.m文件中的opts.opencv_path参数设置为OpenCV原先解压的路径,例如我这里是“D:\ProgramFiles\OpenCV3.4.1_x64\opencv\build”:opts.opencv_path = 'D:\ProgramFiles\OpenCV3.4.1_x64\opencv\build';  % OpenCV location

再然后将其中的一些代码注释掉,不然可能会报 -R2017b这样的错误(275-281行):

real/imaginary storage format for complex arrays

if ~mexopencv.isOctave() && ~verLessThan('matlab', '9.4')

% keep using the "separate complex storage", as opposed to the

% "interleaved complex storage" introduced in R2018a

% (see MX_HAS_INTERLEAVED_COMPLEX)

mex_flags = ['-R2017b' mex_flags];

end

注释后:

% real/imaginary storage format for complex arrays

% if ~mexopencv.isOctave() && ~verLessThan('matlab', '9.4')

% % keep using the "separate complex storage", as opposed to the

% % "interleaved complex storage" introduced in R2018a

% % (see MX_HAS_INTERLEAVED_COMPLEX)

% mex_flags = ['-R2017b' mex_flags];

% end

(4)编译opencv,在MATLAB的命令行中输入>> mexopencv.make

(5)耐心等待,编译成功后测试一下

addpath('test');

UnitTest;

如果全部显示“”PASS"则代表配置成功。

参考链接:1)Matlab和OpenCv的混合编程,工具箱mexopencv——https://blog.csdn.net/luchengtao11/article/details/52179595

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值