- 高版本的opencv因为版权等问题,在正式发布的版本里,已经将SURF等算法移到opencv_contrib里
- 如果需要这些算法,需要自己下载opencv_contrib,用cmake编译
- opencv_contrib4.20下载地址:https://github.com/opencv/opencv_contrib/releases
- 官网下载opencv4.20:https://opencv.org/releases/
- 解压下载的两个文件包,到下面的两个目录:

- 官网下载cmake-3.16.4-win64-x64.msi:https://cmake.org/download/
- 安装cmake
- 运行cmake,先设置以下两个选择项:

- 选择编译器:

- 设置opencv_contrib的选项:opencv_contrib的modules目录
OPENCV_EXTRA_MODULES_PATH:设置成

- 再设置:OPENCV_ENABLE_NONFREE,打钩(这一步很重要,否则编译后的库不能用)

- 再设置自己需要的编译项目:(下面画红线的框的选项,可能需要经过两次generate才能出现)

- 生成c++文件:

- 运行vs2019,选择刚才生成的opencv项目:


- 编译:


- 经过漫长的等待时间,完成编译,在目标文件夹生成需要的库:
dcx\bin\Debug\opencv_world420d.dll
dcx\lib\Debug\opencv_world420d.lib
- 将这两个库,替换旧的opencv4.20里库就可以了。
本文详细介绍了如何从源代码编译高版本OpenCV并启用SURF算法,包括下载opencv_contrib模块、使用cmake配置环境、选择编译器、设置编译选项以及在Visual Studio中生成和编译项目的过程。





