Matlab本身有着出色的图像算法分析工具,但有时我们出于速度和开发的需要,在matlab中调用opencv辅助处理,那么如何在matlab中调用opencv呢?这篇博客介绍三种方式:Matlab嵌入C++,使用mexOpenCV第三方工具,使用Matlab官方提供的Computer Vision Toolbox中的OpenCVInterface。
Matlab中嵌入C++
在Matlab中嵌入C++,C++链接OpenCV库不失为一种选择,其核心就是matlab中混编C++,参见我之前的博客,Matlab嵌入C++,API,编译与调试
只是注意在用mex工具编译的过程中链接OpenCV的库就可以了
mex test.cpp -R2018a -I'C:/opencv/include' -L'C:/opencv/x64/vc15/lib' -lopencv_world347
使用mexOpenCV工具
直接放工具了,这个工具只支持到opencv3.4.1(需要自己编译),博主试过,编译很顺利,没有什么坑,按照github页面的wiki说明安装即可
P-Chao / mexopencv
Collection and a development kit of matlab mex functions for OpenCV library
如果你安装的有VS2019,那么你很幸运,博主已经编译好了二进制文件,直接下载就可以。还是上面的github地址,切换一下分支,到opencv341vc16x64-matlab2019b分支,直接下载(因为有二进制文件,所以可能下载比较久)。
下载完成后,将mexopencv/bin文件夹设置到系统环境变量path中(注意,是系统的path而不是matlab的搜索路径),将mexopencv目录和mexopencv/cv_contrib目录设置为Matlab搜索路径,然后输入 cv.getBuildInformation(),弹出如下信息,就代表可以使用了。
使用OpenCVInterface
https://ww2.mathworks.cn/help/vision/ug/opencv-interface.html?requestedDomain=cn
命令行运行 visionSupportPackages 进行安装,然后按照上面链接中的教程运行demo即可
如果以上方法不满意,也可以C++调用Matlab、转投python
下载文件里面并没有bin文件夹呀,怎么设置环境
如果是编译好的的话,要下载另一个分支,如果是自己编译的话,把自己opencv的dll加入环境变量就可以了