【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置

参考链接:
mexopencv官方文档:介绍了全部流程
补充官方文档Configure OpenCV出现的问题:直到Configure后没有红色,再点击Generate
最新Opencv 与 VC++ 的版本对应关系(2023-04-08)
MATLAB支持和兼容的编译器 - Windows

  • 文章起源:需要在matlab中调用opencv库,搞了一天半
  • 需要下载的东西:(截止2023.6.13,最新的mexopencv 仅与 OpenCV 3.4.1 兼容)
    1. opencv-3.4.1opencv_contrib-3.4.1, 后面提供了下载链接
    2. CMake(3.26.4)
    3. Visual Studio Community(我用的是2022),!!!需要安装使用C++的桌面开发Windows 10 SDK以及VS2015 C++生成工具
    4. mexopencv-3.4.1

下面是完整流程,基本是官网文档的翻译,补充了一些自己踩过的坑

OpenCV部分

1.下载OpenCV

直接从 GitHub 下载源码压缩包:
opencv sources (tag 3.4.1): https://github.com/opencv/opencv/archive/3.4.1.zip
opencv_contrib sources (tag 3.4.1): https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
解压到同一个文件夹dev下面,例如:

  • C:\dev\opencv-3.4.1
  • C:\dev\opencv_contrib-3.4.1

2. 配置OpenCV

  • 此步骤需要CMake和 C++ 编译器(Visual Studio Community 2022)

2.1 生成 VS 解决方案来构建opencv源代码

安装CMake之后,启动cmake-gui.exe

  1. 设置源文件夹和目标文件夹,分别为C:/dev/opencvC:/dev/build
    【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置_第1张图片

  2. 按Configure,然后选择Visual Studio 14 2015Win64作为编译器

  3. 勾选GroupedAdvanced,在BUILD组里面去掉以下几项(*号表示匹配任意字符):
    BUILD_DOCS, BUILD_EXAMPLES, BUILD_PACKAGE, BUILD_PERF_TESTS, BUILD_TESTS, BUILD_JAVA BUILD_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

  4. OPENCV分组里面:
    设置OPENCV_EXTRA_MODULES_PATH比如为C:/dev/opencv_contrib_3.4.1/modules
    勾选OPENCV_ENABLE_NONFREE

  5. WITH 分组, 去掉以下几项:
    WITH_CUDA, WITH_CUFFT, WITH_CUBLAS, WITH_NVCUVID, WITH_MATLAB, WITH_VTK

  6. 再次点击Configure,等待一会儿,BUILD分组应该还是红色,如果有以下几项被勾选的就去掉:
    BUILD_opencv_cvv, BUILD_opencv_freetype, BUILD_opencv_hdf, BUILD_opencv_matlab, BUILD_opencv_ovis, BUILD_opencv_sfm

  7. 再次点击 Configure,直到没有红色,然后点击Generate,关闭CMake
    【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置_第2张图片

3 编译OpenCV

在 Visual Studio 中打开上一步生成的解决方案:C:\dev\build\OpenCV.sln,并执行以下操作:

  1. 将配置切换到“Release”模式
    【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置_第3张图片

  2. 构建解决方案,右键“ALL_BUILD”,点击生成,生成成功进行下一步

  3. 右键“INSTALL”,点击生成(我这里编译报错,后来在Visual Studio Installer里面安装使用C++的桌面开发Windows SDKVS2015 C++生成工具之后就可以编译成功了,如下图所示
    【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置_第4张图片

  4. 关闭 Visual Studio

  5. 最后,将 OpenCV 二进制文件(包含 OpenCV DLL 的文件夹:C:\dev\build\install\x64\vc14\bin)添加到PATH环境变量中。

mexopencv部分

  1. 下载mexopencv项目,保存到文件夹C:\dev\mexopencv

  2. 启动 MATLAB,在命令行输入mex -setup cpp(!!!不是官方文档的mex -setup),然后选中Microsoft Visual C++ 2015(默认的2022版本无法使用),参考matlab官方文档
    在这里插入图片描述

  3. 然后输入以下命令:

    cd('C:\dev\mexopencv')
    addpath('C:\dev\mexopencv')
    addpath('C:\dev\mexopencv\opencv_contrib')
    mexopencv.make('opencv_path','C:\dev\build\install', 'opencv_contrib',true)
    

    一切顺利的话,就编译成功
    【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置_第5张图片
    如果编译失败,可尝试这篇文章:将mexopencv3_4_1\+mexopencv目录下的make.m文件中的opts.opencv_path参数设置为OpenCV构建的路径,如C:\dev\build

  4. 在命令行输入cv.getBuildInformation(),然后输出相应信息 ,就可以愉快地在 MATLAB 中使用 OpenCV啦~【环境配置】MATLAB r2022b+opencv3.4.1+mexopencv3.4.1+Windows 11 配置_第6张图片

你可能感兴趣的:(python,matlab整理,项目整理,学习笔记,matlab,opencv)