最近需要读取视频,MATLAB居然不支持特定格式,徘徊在把代码改成python和配置MATLAB去调用opencv之间,最后选了后者。我也出现过失败,装了第二次。过程中一定要看仔细,如果遇到错误找找相同类型的帖子有没有说明。
条件:已经安装了MATLAB2018a,VS2017
MATLAB命令行中mex -setup可执行
下载Windows版本的cmake:
下载了opencv3.4.1:
https://github.com/opencv/opencv/archive/3.4.1.zip
下载了opencv_contrib3.4.1:
https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
下载mexopencv3.4.1
https://github.com/kyamagu/mexopencv
OpenCV路径设置:
D:\SoftWare\OpenCV3.4.1_contib
D:\SoftWare\OpenCV3.4.1
然后开始通过生成一个VS解决方案去搭建上述环境资源。通过cmake-gui.exe,按照如下步骤:
1)设置源文件路径
2)设置目标文件路径
后来为了简洁美观,有点小调整,文件目录及路径为:

选定源文件路径和生成文件路径:

3)点击Configure,选择vs编译器,中间出了点小插曲,卸载了一下cmake,然后重装了一下,在tools里面选择编译器

- 在build组中取消以下选项:
BUILD_DOCS,BUILD_EXAMPLES,BUILD_PACKAGE,BUILD_PERF_TESTS,BUILD_TESTS,BUILD_JAVABUILD_opencv_apps,BUILD_opencv_cuda*,BUILD_opencv_cudev,BUILD_opencv_js,BUILD_opencv_java*,BUILD_opencv_python*,BUILD_opencv_ts,BUILD_opencv_viz,BUILD_opencv_world opencv组中设置如下:

with组中,撤销选定如下内容:WITH_CUDA,WITH_CUFFT,WITH_CUBLAS,WITH_NVCUVID,WITH_MATLAB,WITH_VTK- 然后,重新点击configure,generate,关闭cmake
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 编译opencv:

- 1)打开VS2017,打开opencv.sln
- 2) 将vs2017的debug模式换成release
- 3)ALL_BUILD右键生成

- -----------------------------------------------------------------------------------------------------------------------------------------------------------------注意:需要一定的时间,另外,需要注意中间报错有一个const char* 无法转换为char*,当时忘记截图,所以我的选择是直接找到报错命令行,将char* 前面加上const即可正确生成。
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------
- 4)INSTALL右键生成
- 5)关闭vs
添加环境变量
D:\SoftWare\dev\build\install\x64\vc15\bin
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
打开MATLAB
>> cd('D:\SoftWare\dev\mexopencv')
>> addpath('D:\SoftWare\dev\mexopencv')
>> addpath('D:\SoftWare\dev\mexopencv\opencv_contrib')
>> mexopencv.make('opencv_path','D:\SoftWare\dev\build\install','opencv_contrib',true)
如果报错:
错误使用 mex
MEX 参数 '-R2017b-largeArrayDims' 未知。
打开mexopencv中的make.m文件
找到如下内容:ctrl+r
% real/imaginary storage format for complex arrays
% if ~mexopencv.isOctave() && ~verLessThan('matlab', '9.4')

本文详细介绍了如何在MATLAB2018a中配置并使用mexopencv调用opencv,包括下载所需软件、设置路径、使用cmake生成VS解决方案、解决编译问题,以及最终在MATLAB中验证配置成功的过程。
最低0.47元/天 解锁文章
1397

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



