WIN下安装配置opencv的支持cuda的版本(仅使用命令行界面)
众所周知,opencv可以通过pip一键安装预编译版本的或者安装具有额外模块(如视频处理、图像处理等)的OpenCV版本但是官方提供的预编译版本并不支持cuda的加速,想知道自己的版本是否支持cuda可以用python运行以下命令我之前也是安装了官方提供的预编译版本,不支持cuda加速,会输出如果支持cuda加速应该输出。
在开始之前,请确保Windows电脑已经安装了以下软件:
- Visual Studio(包含Desktop development with C++工作负载)
- CMake
- Git(克隆OpenCV源代码)
- CUDA Toolkit(CUDA支持)
- Python环境(建议使用Miniforge,包含NumPy)
众所周知,opencv可以通过pip一键安装预编译版本的
pip install opencv-python
或者安装具有额外模块(如视频处理、图像处理等)的OpenCV版本
pip install opencv-python-headless
但是官方提供的预编译版本并不支持cuda的加速,想知道自己的版本是否支持cuda可以用python运行以下命令
import cv2
print("opencv version is:")
print(cv2.__version__)
if cv2.cuda.getCudaEnabledDeviceCount() > 0:
print("CUDA support is enabled.")
else:
print("CUDA support is not enabled.")
我之前也是安装了官方提供的预编译版本,不支持cuda加速,会输出

如果支持cuda加速应该输出

所以我们需要从opencv官方提供的源代码来编译后安装,首先:
下载源代码
-
克隆OpenCV和opencv_contrib的源代码:
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
或者手动去GitHub - opencv/opencv: Open Source Computer Vision Library和GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modules下载源代码,下载完成后将源代码放置在你喜欢的目录下,例如我这里:
D:\AI\opencv-cuda\opencv-4.x
D:\AI\opencv-cuda\opencv_contrib-4.10.0
然后在你喜欢的位置创建一个名为build的文件夹,我的这里在
D:\AI\opencv-cuda\opencv_contrib_cuda_4.10.0_win_amd64\build
然后打开cmd,cd到你的build文件夹下,并启用虚拟环境,我这里是
cd D:\AI\opencv-cuda\opencv_contrib_cuda_4.10.0_win_amd64\build
conda activate MMD311
然后运行 vcvars64.bat 脚本以配置Visual Studio的x64编译环境,请按照自己实际安装目录更改命令,我这里是
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
接下来运行以下命令,注意!!!请按照自己的实际目录修改,直接复制我的不能正常配置!!!(嫌麻烦不想自己改路径的话可以把这篇文章丢给ai 然后告诉ai自己的各个文件的的路径,让他帮你改)
安装过程中会自动下载一些缺少的东西,请保证自己可以访问国外网络,如github等,不然无法正常安装,会报错
"C:\Program Files\CMake\bin\cmake.exe" -HD:\AI\opencv-cuda\opencv-4.x -BD:\AI\opencv-cuda\opencv_contrib_cuda_4.10.0_win_amd64\build -G"Ninja Multi-Config" -DCMAKE_BUILD_TYPE=Release -DOPENCV_EXTRA_MODULES_PATH=D:\AI\opencv-cuda\opencv_contrib-4.10.0\modules -DBUILD_opencv_world=ON -DENABLE_CUDA_FIRST_CLASS_LANGUAGE=ON -DWITH_CUDA=ON -DCUDA_GENERATION=Auto -DBUILD_opencv_python3=ON -DPYTHON3_INCLUDE_DIR=C:/Users/mousennnn/.conda/envs/MMD311/include -DPYTHON3_LIBRARY=C:/Users/mousennnn/.conda/envs/MMD311/libs/python311.lib -DPYTHON3_EXECUTABLE=C:/Users/mousennnn/.conda/envs/MMD311/python.exe -DPYTHON3_NUMPY_INCLUDE_DIRS=C:/Users/mousennnn/.conda/envs/MMD311/Lib/site-packages/numpy/core/include -DPYTHON3_PACKAGES_PATH=C:/Users/mousennnn/.conda/envs/MMD311/Lib/site-packages
完成后会输出类似于以下的内容
-- General configuration for OpenCV 4.10.0-dev =====================================
-- Version control: unknown
--
-- Extra modules:
-- Location (extra): D:/AI/opencv-cuda/opencv_contrib-4.10.0/modules
-- Version control (extra): unknown
--
-- Platform:
-- Timestamp: 2024-09-13T05:43:43Z
-- Host: Windows 10.0.22621 AMD64
-- CMake: 3.30.3
-- CMake generator: Ninja Multi-Config
-- CMake build tool: C:/Users/mousennnn/.conda/envs/MMD311/Scripts/ninja.exe
-- MSVC: 1940
-- Configuration: Debug Release
-- Algorithm Hint: ALGO_HINT_ACCURATE
--
-- CPU/HW features:
-- Baseline: SSE SSE2 SSE3
-- requested: SSE3
-- Dispatched code generation: SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
-- SSE4_1 (18 files): + SSSE3 SSE4_1
-- SSE4_2 (2 files): + SSSE3 SSE4_1 POPCNT SSE4_2
-- AVX (9 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX
-- FP16 (1 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX FP16
-- AVX2 (38 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX FP16 AVX2 FMA3
-- AVX512_SKX (8 files): + SSSE3 SSE4_1 POPCNT SSE4_2 AVX FP16 AVX2 FMA3 AVX_512F AVX512_COMMON AVX512_SKX
--
-- C/C++:
-- Built as dynamic libs?: YES
-- C++ standard: 11
-- C++ Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe (ver 19.40.33812.0)
-- C++ flags (Release): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /FS /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /O2 /Ob2 /DNDEBUG
-- C++ flags (Debug): /DWIN32 /D_WINDOWS /W4 /GR /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /FS /EHa /wd4127 /wd4251 /wd4324 /wd4275 /wd4512 /wd4589 /wd4819 /Zi /Ob0 /Od /RTC1
-- C Compiler: C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.40.33807/bin/Hostx64/x64/cl.exe
-- C flags (Release): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /FS /O2 /Ob2 /DNDEBUG
-- C flags (Debug): /DWIN32 /D_WINDOWS /W3 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _SCL_SECURE_NO_WARNINGS /Gy /bigobj /Oi /fp:precise /FS /Zi /Ob0 /Od /RTC1
-- Linker flags (Release): /machine:x64 /INCREMENTAL:NO
-- Linker flags (Debug): /machine:x64 /debug /INCREMENTAL
-- ccache: NO
-- Precompiled headers: NO
-- Extra dependencies: C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/cudart_static.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppial.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppc.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppitc.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppig.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppist.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppidei.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/cublas.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/cublasLt.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/cufft.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppif.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppim.lib C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/lib/x64/nppicc.lib
-- 3rdparty dependencies:
--
-- OpenCV modules:
-- To be built: aruco bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev datasets dnn dnn_objdetect dnn_superres dpm face features2d flann fuzzy gapi hfs highgui img_hash imgcodecs imgproc intensity_transform line_descriptor mcc ml objdetect optflow phase_unwrapping photo plot python3 quality rapid reg rgbd saliency shape signal stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab wechat_qrcode world xfeatures2d ximgproc xobjdetect xphoto
-- Disabled: -
-- Disabled by dependency: -
-- Unavailable: alphamat cannops cvv freetype hdf java julia matlab ovis python2 python2 sfm viz
-- Applications: tests perf_tests apps
-- Documentation: NO
-- Non-free algorithms: NO
--
-- Windows RT support: NO
--
-- GUI:
-- Win32 UI: YES
-- VTK support: NO
--
-- Media I/O:
-- ZLib: build (ver 1.3.1)
-- JPEG: build-libjpeg-turbo (ver 3.0.3-70)
-- SIMD Support Request: YES
-- SIMD Support: NO
-- WEBP: build (ver encoder: 0x020f)
-- PNG: build (ver 1.6.43)
-- SIMD Support Request: YES
-- SIMD Support: YES (Intel SSE)
-- TIFF: build (ver 42 - 4.6.0)
-- JPEG 2000: build (ver 2.5.0)
-- OpenEXR: build (ver 2.3.0)
-- HDR: YES
-- SUNRASTER: YES
-- PXM: YES
-- PFM: YES
--
-- Video I/O:
-- FFMPEG: NO
-- avcodec: NO
-- avformat: NO
-- avutil: NO
-- swscale: NO
-- avresample: NO
-- GStreamer: NO
-- DirectShow: YES
-- Media Foundation: YES
-- DXVA: YES
--
-- Parallel framework: Concurrency
--
-- Trace: YES (with Intel ITT)
--
-- Other third-party libraries:
-- Intel IPP: 2021.12.0 [2021.12.0]
-- at: D:/AI/opencv-cuda/opencv_contrib_cuda_4.10.0_win_amd64/build/3rdparty/ippicv/ippicv_win/icv
-- Intel IPP IW: sources (2021.12.0)
-- at: D:/AI/opencv-cuda/opencv_contrib_cuda_4.10.0_win_amd64/build/3rdparty/ippicv/ippicv_win/iw
-- Lapack: NO
-- Eigen: NO
-- Custom HAL: NO
-- Protobuf: build (3.19.1)
-- Flatbuffers: builtin/3rdparty (23.5.9)
--
-- NVIDIA CUDA: YES (ver 12.1.66, CUFFT CUBLAS)
-- NVIDIA GPU arch: 86
-- NVIDIA PTX archs:
--
-- cuDNN: YES (ver 8.9.6)
--
-- OpenCL: YES (NVD3D11)
-- Include path: D:/AI/opencv-cuda/opencv-4.x/3rdparty/include/opencl/1.2
-- Link libraries: Dynamic load
--
-- Python 3:
-- Interpreter: C:/Users/mousennnn/.conda/envs/MMD311/python.exe (ver 3.11.9)
-- Libraries: C:/Users/mousennnn/.conda/envs/MMD311/libs/python311.lib (ver 3.11.9)
-- Limited API: NO
-- numpy: C:/Users/mousennnn/.conda/envs/MMD311/Lib/site-packages/numpy/core/include (ver 1.25.0)
-- install path: C:/Users/mousennnn/.conda/envs/MMD311/Lib/site-packages/cv2/python-3.11
--
-- Python (for build): C:/Users/mousennnn/.conda/envs/MMD311/python.exe
--
-- Java:
-- ant: NO
-- Java: NO
-- JNI: NO
-- Java wrappers: NO
-- Java tests: NO
--
-- Install to: D:/AI/opencv-cuda/opencv_contrib_cuda_4.10.0_win_amd64/build/install
-- -----------------------------------------------------------------
--
-- Configuring done (1310.7s)
-- Generating done (12.3s)
-- Build files have been written to: D:/AI/opencv-cuda/opencv_contrib_cuda_4.10.0_win_amd64/build
接下来,在同一个命令行窗口下运行
"C:\Program Files\CMake\bin\cmake.exe" --build . --target install --config Release
等待安装完成,接下来大功告成,再试试运行
import cv2
print("opencv version is:")
print(cv2.__version__)
if cv2.cuda.getCudaEnabledDeviceCount() > 0:
print("CUDA support is enabled.")
else:
print("CUDA support is not enabled.")
输出

至此,
支持cuda的opencv安装完成!!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)