前言
最近在做视频追踪的项目, 在opencv中有很多现成实现追踪的函数,想用那些函数来进行一个调试,由于MATLAB有更加强大的矩阵库,众多的工具箱,以及更加便捷的可视化及调试工具,所以打算在MATLAB中调用opencv库中的函数,在此记录一下配置的过程。
mexopencv用于OpenCV库的matlab mex函数的集合和开发工具包。mexopencv是针对特定的OpenCV版本开发的,所以必须使用对应的opencv和mexopencv版本。在此将介绍在MATLAB上配置OpenCV3.4.1和mexopencv的过程。
文档
安装
安装opencv
先打开opencv官网,然后点击Releases,就可以开始下载对应的opencv版本
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/d67306cb53965c807cfdbd1092269b1c.png)
![CSDN](https://i-blog.csdnimg.cn/blog_migrate/a20649c5b51afdd4dff7eb4887d37db5.png)
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/a059ad2c1a6a3ef58e09a8e66bdfae79.png)
注意:安装好opencv后要将路径 D:***\opencv\build\x64\vc15\bin添加到系统变量path中,我这里所用的vs为2017,所以选择的文件夹为vc15,若为vs2015,则选择的文件夹为vc14。
安装mexopencv*
解压文件到你任意指定的路径下,打开MATLAB(我安装的MATLAB是R2018版本的),选定路径为你将mexopencv解压的路径,我这里是:
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/5d5759d5d2892b832598562609c9db5c.png)
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/dbe40dcc96dcd88a6e319c02c96e10cd.png)
由于我这里已经添加了所有路径,所以在这里显示的是从路径下删除。
在MATLAB命令窗口输入
mex -setup
随后出现
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/20b02c854ac1d5464720f3927abeeef1.png)
继续点击
mex -setup C++
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/02b5651eb6381b049d21cb07d719f73a.png)
很关键的一步,我们需要mexopencv里的一些参数,不然会报错
首先需要将mexopencv3_4_1\+mexopencv
目录下的make.m
文件中的opts.opencv_path
参数设置为OpenCv原先解压的路径,例如我这里是'D:\AzRjN\opencv3_4_1\opencv\build
:
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/e691a33302b8972b7b5187f8680e5e05.png)
再然后将其中的一些代码注释掉,不然可能会报 -R2017b
这样的错误
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/283c09934abd15646452ad09c989be8a.png)
最后在MATLAB
的命令行中输入
mexopencv.make
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/e01a0726ccb4610b05836b823b1edc85.png)
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/10f448f673328575b207b7fef78948c3.png)
在配置的结束,以一个opencv
读取摄像头的小程序结尾
camera = cv.VideoCapture();
pause(2);
for i = 1:50
% Capture and show frame
frame = camera.read;
imshow(frame);
pause(0.3);
end
最后成功的调用了电脑的摄像头。
![CSDN图标](https://i-blog.csdnimg.cn/blog_migrate/1a74b8134185899f649ccb618fc7ad79.jpeg)
END