MATLAB2018a+mexopencv+opencv+VS2017配置步骤,从下载到安装使用的全套姿势

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近需要读取视频,MATLAB居然不支持特定格式,徘徊在把代码改成python和配置MATLAB去调用opencv之间,最后选了后者。我也出现过失败,装了第二次。过程中一定要看仔细,如果遇到错误找找相同类型的帖子有没有说明。

条件:已经安装了MATLAB2018a,VS2017

MATLAB命令行中mex -setup可执行

下载Windows版本的cmake:

https://cmake.org/download/

下载了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_DOCSBUILD_EXAMPLESBUILD_PACKAGEBUILD_PERF_TESTSBUILD_TESTSBUILD_JAVABUILD_opencv_appsBUILD_opencv_cuda*BUILD_opencv_cudevBUILD_opencv_jsBUILD_opencv_java*BUILD_opencv_python*BUILD_opencv_tsBUILD_opencv_vizBUILD_opencv_world
  • opencv组中设置如下:
  • with组中,撤销选定如下内容:WITH_CUDAWITH_CUFFTWITH_CUBLASWITH_NVCUVIDWITH_MATLABWITH_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')

Matlab 2018a本身并不强制绑定特定的文本编辑器,你可以选择自己喜欢的编辑器配合使用,比如常用的Notepad++, Sublime Text, Visual Studio Code等。安装完成后,要在Matlab中调用OpenCV并打开摄像头,你需要按照以下步骤操作: 1. **安装OpenCV for MATLAB**: - 首先,访问OpenCV的官方网站下载针对MATLAB的适配包(通常称为"opencv toolbox"),确保与你的MATLAB版本兼容。 - 安装过程中,可能需要安装额外的库,如Java Development Kit (JDK)。 2. **设置环境变量**: - 将OpenCV安装路径添加到系统环境变量,以便Matlab能够找到它的库文件。 3. **加载OpenCV库**: - 打开MATLAB,点击“工具”->“首选项”->“路径”,在“搜索路径”区域中添加OpenCV的`toolbox`目录。 4. **调用摄像头**: - 使用OpenCV的函数开始摄像头功能,例如`videoReader`或`videocapture`。下面是一个简单的示例: ```matlab % 加载OpenCV工具箱 addpath(genpath('/path/to/opencv/toolbox')); % 创建视频捕获对象 vc = videoInput('winvideo', 1); % 这里1表示第一个可用的摄像头 % 检查摄像头是否打开成功 if isvalid(vc) % 读取摄像头帧并显示 while hasFrame(vc) frame = getFrame(vc); imshow(frame); pause(0.05); % 控制播放速度 end else disp('Failed to open the camera.'); end ``` 5. **保存和关闭摄像头**: - 当不需要摄像头时,记得调用`deleteObject(vc)`释放资源。 注意替换上述代码中的`'/path/to/opencv/toolbox'`为你实际的OpenCV安装路径。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值