我们将详细讲解如何在Windows 10/11上使用Visual Studio 2020 (VS2020) 编译安装OpenCV 4.11.0及opencv_contrib模块。
准备工作
-
下载源码:
- OpenCV 4.11.0: https://github.com/opencv/opencv/archive/refs/tags/4.11.0.zip
- opencv_contrib 4.11.0: https://github.com/opencv/opencv_contrib/archive/refs/tags/4.11.0.zip
-
安装依赖工具:
- CMake: 下载最新版本 https://cmake.org/download/ (选择Windows x64安装包)
- Python: 推荐Python 3.7+ (从Python官网下载, 并勾选添加至PATH)
- Visual Studio 2020: 安装时选择"使用C++的桌面开发"工作负载
速度慢可用以下gitee:


注意必须是git clone 下来后 https://gitee.com/luozhonghua/opencv.git
然后 git checkout -b 4.11.0 否则非全量源码后面会有更多问题

2. 配置CMake
-
打开CMake GUI
-
设置源码路径和构建路径:
- Where is the source code:
D:/opencv/opencv-4.11.0
- Where to build the binaries:
D:/opencv/build
(可以新建一个build目录)
- Where is the source code:
3、修改第三方库下载地址
进入D:\opencv\3rdparty\ippicv 目录,将 ippicv.cmake 的https://raw.githubusercontent.com修改为:https://raw.staticdn.net
进入D:\opencv\3rdparty\ffmpeg目录将 ffmpeg.cmake的https://raw.githubusercontent.com修改为:https://raw.staticdn.net
同样修改opencv_contrib内文件:
D:\opencv\opencv_contrib\modules\xfeatures2d\cmake目录下两个文件
D:\opencv\opencv_contrib\modules\face目录下CMakeLists.txt
D:\opencv\opencv_contrib\modules\wechat_qrcode目录下CMakeLists.txt
原地址下载很慢且可能出现无法下载问题~~~
修改后仍可能出现问题:
ippicv_2021.12.0_win_intel64_20240425_general.zip无法下载,请手动下载
百度网盘:https://pan.baidu.com/s/1y1XgRF7MrXS4uEUHXqmj-A?pwd=7yb7
提取码:7yb7
下载后替代原名文件
-
点击"Configure"按钮,选择:
- Generator:
Visual Studio 17 2022
(VS2022) 或Visual Studio 16 2019
(VS2019) 注意:VS2020对应的是16,这里应选Visual Studio 16 2019?实际上VS2020和VS2019的版本号都是16,所以选择"Visual Studio 16 2019"即可。但CMake中可能显示为"Visual Studio 16 2019",VS2020对应的是此选项。 - Optional platform for generator:
x64
- Generator:
-
等待第一次配置完成(可多次Configure)
-
在配置过程中可能会出现下载错误(如FFMPEG等),可忽略,后续配置
-
重要选项配置:
OPENCV_EXTRA_MODULES_PATH
=D:/opencv/opencv_contrib-4.11.0/modules
(注意: 路径用正斜杠)OPENCV_ENABLE_NONFREE
=ON
(如果需要SIFT/SURF等专利算法)BUILD_opencv_world
=ON
(将所有库合并为一个,可选)OPENCV_GENERATE_SETUPVARS
=OFF
(可不生成,手动配置环境变量)- 如果遇到IPPICV等下载问题,可手动下载并放置到缓存目录(见常见问题)
-
再次点击"Configure",直到红色部分消失
-
点击"Generate"生成VS解决方案
打开vs2020 opencv,sln解决方案

执行all build然后再执行install


注意:执行60分钟以上才是正常的,否则都是非全量源码
4. 配置环境变量
- 将OpenCV的bin目录添加到系统环境变量
PATH
:D:\opencv\build\install\x64\vc16\bin
- (可选) 设置OpenCV环境变量:
- 新建环境变量
OpenCV_DIR
=D:\opencv\build\install
- 新建环境变量


5. 验证安装
创建VS2020控制台项目,测试代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img = imread("test.jpg");
if (img.empty()) return -1;
imshow("Image", img);
waitKey(0);
return 0;
}
项目配置:
- 包含目录:
D:\opencv\build\install\include
- 库目录:
D:\opencv\build\install\x64\vc16\lib
- 附加依赖项:
opencv_world4110.lib
(如果启用了world模块) 或者具体的库如opencv_core4110.lib
等
常见问题解决
-
下载第三方库失败 (如IPPICV、FFMPEG等):
- 手动下载:根据错误提示中的URL下载,并放到源码目录下的
.cache
目录中对应文件夹 - 例如:
opencv-4.11.0\.cache\ippicv
或opencv-4.11.0\.cache\ffmpeg
- 手动下载:根据错误提示中的URL下载,并放到源码目录下的
-
编译时出现文件找不到错误:
- 检查
opencv_contrib
路径是否设置正确 - 关闭CMake,删除缓存(
CMakeCache.txt
),重新配置
- 检查
-
Python绑定问题:
- 确保Python环境正确,且配置中
Python3_EXECUTABLE
指向正确的解释器
- 确保Python环境正确,且配置中
-
模块缺失:
- 检查
opencv_contrib
模块是否成功集成,可在CMake的模块列表中确认
- 检查
-
视频编解码问题:
- 若需使用摄像头或视频编解码,确保启用
WITH_MSMF
、WITH_FFMPEG
等选项
- 若需使用摄像头或视频编解码,确保启用
按照以上步骤,通常可以在VS2020上成功编译OpenCV 4.11.0和opencv_contrib模块。