1 简介
某人参加建模比赛,基于Matlab处理图片数据,需要使用OpenCV的函数,而某人连Matlab都不怎么会使用,更别提OpenCV了,问我怎么办?怎么办,凉拌吧。总之为了简化过程、节省时间,我找了Matlab直接调用已编译好的Opencv库的方法,并对其中遇到的问题提供了解决方法。
另外提一句啊,Matlab里有工具箱可以下载OpenCV,但是,,,由于某些原因,打不开官网,所以才自己装,建议有条件、有时间的自己装,摸索着玩呗。
2 开发环境与版本
Win10
Matlab2018b,Matlab2023a(版本不少于Maltab2018a)
3 下载资源指导
3.1 MEXOpenCV-3.4.1
MEX是Matlab与其他语言的封装接口,MEXOpenCV则是Matlab与OpenCV封装接口,详情见链接GitHub - kyamagu/mexopencv:OpenCV 库的 matlab mex 函数集合和开发工具包
目前这是最新版本,与OpenCV3.4.1兼容。你需要一个编译好的库,网上有资源自己找,有没有免费的不知道,时间紧张,我也懒得搞实验,直接买了个付费资源:mexopencv-3.4.1编译好的库matlab直接用_matlabmexopencv资源-CSDN文库
3.2 opencv_world341.dll
这个DLL资源需要用到,可以免费下载哦,资源如下:免费下载丢失的DLL文件-最全的dll下载库-dll文件下载站 (dllfiledown.com)
3.3 懒人资源下载
如果说你太新手,或者说你没时间,这是我实验后,包含所需资料和代码,以便最大程度节省时间,投入使用开发,资料见资源绑定。
4 使用流程及示例
4.1 MEXOpenCV及解压缩
资源下载后,有mexopencv-3.4.1-build.zip压缩包,解压缩到合适的目录,我这里是D盘Matlab_OpenCV目录。
然后,打开Matlab,使用如下命令:
addpath('D:\Matlab_OpenCV\mexopencv-3.4.1-build');%添加OpenCV函数库路径这就将封装好的OpenCV函数添加到路径中了。
4.2 DLL资源使用
由于电脑没有安装OpenCV,在系统动态库中,缺少OpenCV的DLL,因此需要我们手动添加。对DLL资源解压缩获得的opencv_world341.dll文件,按照DLL文件下载站指示,如果系统是32位的DLL文件放在"C:\Windows\SysWOW64",64位的DLL文件放在"C:\Windows\System32"。对该文件的讲解,详见opencv_world341.dll 免费下载_DLL文件下载站 (dllfiledown.com),对你或许有帮助。
提醒一下,有以下几点需要注意:
- 如果DLL资源复制过程中,提醒该文件已存在,说明资源已经有了,不要再复制了,毕竟是C盘,能不动尽量不动,不然电脑崩了哭死。
- 在测试用例中,我只发现了Matlab提醒缺少“opencv_world341.dll”。如果实际使用中,还可能缺少其他DLL。但是,注意MEXOpenCV版本号“3.4.1”,DLL资源中最后数字为“341”,我有理由觉得这不是巧合,或许使用这一个DLL资源已经够了。
- 建议使用Matlab2018b版本,使用Matlab2018b过程中,它提醒我少了“opencv_world341.dll”模块;使用另一台电脑的Matlab2023a过程中,它只出错,没说少什么东西,但“opencv_world341.dll”复制到这个电脑后,问题解决了。
4.3 测试用例及讲解
完成上述两个步骤,在Matlab中已经可以调用OpenCV函数了,下面给个示例:
addpath('D:\Matlab_OpenCV\mexopencv-3.4.1-build');%添加OpenCV函数库路径 img=imread('peppers.png'); %读一个图 figure(1) imshow(img); %第一张,显示原图 edges=cv.Canny(img,100); %提取边缘 figure(2) imshow(edges); %第二张,显示边缘图结果如图所示:
![]()
第一张原图 ![]()
第二张边缘提取图 首先呢,不要管测试用例效果怎样哈,反正函数调用成功了。其次,如果你想知道这个函数有什么用、怎么用、输出格式,可以在解压目录找到,比如示例用的Canny,目录为“D:\Matlab_OpenCV\mexopencv-3.4.1-build\+cv\Canny.m”,注意是自己解压的目录哦。最后,没有最后了,成功了。
4.4 懒人教程
使用懒人资源的,下载解压缩后,只需按4.2的将DLL复制到C盘位置就可,打开Matlab调整目录到解压缩目录,打开"opencv_test.m"直接运行即可。当然,注意一下解压目录与添加路径一致啊。
5 总结
对于这种参加建模,没一点提前准备,真想一巴掌呼过去,还好今天有点空,帮忙搞一下。建议大家对平台使用还是多摸索,浪费点时间也是成长啊。目前建模反馈能使用,没少DLL,相信大学生Deadline前的爆发吧,难蚌。
931

被折叠的 条评论
为什么被折叠?



