参考
依赖
1、VisualStudio (我使用的是2022版)VisualStudioSetup.exe – 蓝奏云 (lanzoup.com)
2、python-3.8.0-amd64.exe python-3.8.0-amd64.exe
3、cmake-3.26.0-windows-x86_64.msi cmake-3.26.0-windows-x86_64.msi.zip 官方
4、cuda_11.7.1_516.94_windows.exe (自行选择适配版本)
5、cudnn-windows-x86_64-8.8.0.121_cuda11-archive.zip (自行选择适配版本)
6、opencv-4.7.0.zip https://wwi.lanzoup.com/iWXkg0qghgxe 官方
7、opencv_contrib-4.7.0.zip https://wwi.lanzoup.com/iq29C0qgh9ed 官方
教程:
一、配置cuda环境
直接按照下面教程安装
二、CMake编译OpenCV源码得到OpenCV.sln工程文件
注:原有的opencv的python包必须卸载,python必须先安装numpy
库
此步骤需要下载github上的依赖,需要满足一定的网络条件
1、创建一个目录opencv_build
(此目录以后不能变更,暂未找到解决办法)
把opencv-4.7.0.zip
和opencv_contrib-4.7.0.zip
都解压到opencv_build
目录。再创建一个build
目录为编译目录

2、打开Cmake-gui,选择以下相应的目录

3、第一次点击 configure
,选择vs 2022
和x64
架构,点击finish
,开始第一次编译

4、编译完成后,在Search
框内输入CUDA
和fast
,勾选三个配置 : WITH_CUDA
、OPENCV_DNN_CUDA
、ENABLE_FAST_MATH
。
5、Search框搜world
,将build_opencv_world
打勾。
6、Search框搜BUILD
,勾选BUILD_opencv_python3
。
7、Search框搜CMAKE_CONFIGURATION_TYPES
,内容只留下Release
。
8、search框搜NON
,把OPENCV_ENABLE_NONFREE
打勾。
9、search框搜MODULES
,在OPENCV_EXTRA_MODULES_RATH
一项,添加opencv_contrib4.7.0
中的modules
目录。再点击 configure
。

10、搜索框输入cuda
,勾选CUDA_FAST_MATH
。CUDA_ARCH_BIN
中将显卡的算力内容改成自己显卡的算力。查询算力网站。再点击 configure
。


10、去D:\opencv_build\build
目录查看CMakeDownloadLog.txt
文件。搜索https
,如果搜索有结果,就表明网络条件不达标,文件下载失败。可以尝试使用steam++(watt tookit)加速,删除CMakeDownloadLog.txt
文件。再点击 configure
。再次打开文件搜索https
,有结果就删除CMakeDownloadLog.txt
文件,再点击 configure
。最后查看自动生成的CMakeDownloadLog.txt内容,没有https开头的东西,说明所有文件全部成功。单击Generate
来生成OpenCV.sln
文件。
注:取消勾选带有java和face的选项可以加快速度,但人脸识别功能应该也会失效。
三、VS编译OpenCV.sln。
1、点击Cmake-Gui里的Open Project,打开VS编译OpenCV.sln。
2、右击ALL_BUILD
点击生成,等待一个小时左右(大概生成一百多项)。如果生成没有失败项就表示生成成功。在右击INSTALL
点击生成,生成成功后就编译完成了。

四、测试
打开cmd输入python -c "import cv2; print(f'OpenCV: {cv2.version} for python installed and working')"
若输出OpenCV: 4.7.0 for python installed and working
就表明成功编译。
注:opencv_build
目录以后不能变更,暂未找到解决办法