参考链接:
mexopencv官方文档:介绍了全部流程
补充官方文档Configure OpenCV出现的问题:直到Configure后没有红色,再点击Generate
最新Opencv 与 VC++ 的版本对应关系(2023-04-08)
MATLAB支持和兼容的编译器 - Windows
- 文章起源:需要在matlab中调用opencv库,搞了一天半
- 需要下载的东西:(截止2023.6.13,最新的mexopencv 仅与 OpenCV 3.4.1 兼容)
opencv-3.4.1 和opencv_contrib-3.4.1 , 后面提供了下载链接- CMake(3.26.4)
- Visual Studio Community(我用的是2022),!!!需要安装
使用C++的桌面开发 ,Windows 10 SDK 以及VS2015 C++生成工具 - 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
解压到同一个文件夹
C:devopencv-3.4.1 C:devopencv_contrib-3.4.1
2. 配置OpenCV
- 此步骤需要CMake和 C++ 编译器(Visual Studio Community 2022)
2.1 生成 VS 解决方案来构建opencv源代码
安装CMake之后,启动
-
设置源文件夹和目标文件夹,分别为
C:/dev/opencv 和C:/dev/build

-
按Configure,然后选择
Visual Studio 14 2015 和Win64 作为编译器 -
勾选
Grouped 和Advanced ,在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 -
在
OPENCV 分组里面:
设置OPENCV_EXTRA_MODULES_PATH 比如为C:/dev/opencv_contrib_3.4.1/modules
勾选OPENCV_ENABLE_NONFREE -
在
WITH 分组, 去掉以下几项:
WITH_CUDA, WITH_CUFFT, WITH_CUBLAS, WITH_NVCUVID, WITH_MATLAB, WITH_VTK -
再次点击Configure,等待一会儿,
BUILD 分组应该还是红色,如果有以下几项被勾选的就去掉:
BUILD_opencv_cvv, BUILD_opencv_freetype, BUILD_opencv_hdf, BUILD_opencv_matlab, BUILD_opencv_ovis, BUILD_opencv_sfm -
再次点击 Configure,直到没有红色,然后点击Generate,关闭CMake

3 编译OpenCV
在 Visual Studio 中打开上一步生成的解决方案:
-
将配置切换到“Release”模式

-
构建解决方案,右键“ALL_BUILD”,点击
生成 ,生成成功进行下一步 -
右键“INSTALL”,点击
生成 (我这里编译报错,后来在Visual Studio Installer里面安装使用C++的桌面开发 ,Windows SDK 和VS2015 C++生成工具 之后就可以编译成功了,如下图所示

-
关闭 Visual Studio
-
最后,将 OpenCV 二进制文件(包含 OpenCV DLL 的文件夹:
C:devuildinstallx64vc14in )添加到PATH 环境变量中。
mexopencv部分
-
下载mexopencv项目,保存到文件夹
C:devmexopencv -
启动 MATLAB,在命令行输入
mex -setup cpp (!!!不是官方文档的mex -setup ),然后选中Microsoft Visual C++ 2015 (默认的2022版本无法使用),参考matlab官方文档

-
然后输入以下命令:
cd('C:devmexopencv') addpath('C:devmexopencv') addpath('C:devmexopencvopencv_contrib') mexopencv.make('opencv_path','C:devuildinstall', 'opencv_contrib',true)一切顺利的话,就编译成功

如果编译失败,可尝试这篇文章:将mexopencv3_4_1+mexopencv 目录下的make.m 文件中的opts.opencv_path 参数设置为OpenCV构建的路径,如C:devuild -
在命令行输入
cv.getBuildInformation() ,然后输出相应信息 ,就可以愉快地在 MATLAB 中使用 OpenCV啦~






