opencv-python的GPU调用
一、安装cuda,cudnn
英伟达官网下载安装即可:https://developer.nvidia.com/cuda-toolkit
二、安装opencv with cuda
两种方式:预编译版本,自己编译
1. 预编译版
进去opencv社区选择适合自己驱动版本的whl,下载后安装即可。
pip install opencv_contrib_python-4.12.0.88-cp37-abi3-win_amd64.whl
2. 自己编译
使用cmke构建opencv
cmake -D WITH_CUDA=ON -D CUDA_ARCH_BIN="your_gpu_arch" -D CUDA_ARCH_PTX="" ..
三、使用方法
示例:“把一张图片上传到 GPU → 做高斯模糊 → 下载回 CPU → 显示”。
import cv2
import numpy as np# 1. 检查是否有可用 GPU
if cv2.cuda.getCudaEnabledDeviceCount() == 0:raise RuntimeError("OpenCV 未检测到支持 CUDA 的 GPU,请确认驱动 / CUDA Toolkit 安装正确。")# 2. 读取图像(CPU Mat)
img = cv2.imread('image.jpg', cv2.IMREAD_COLOR)
if img is None:raise FileNotFoundError("image.jpg 不存在")# 3. 上传到 GPU(GpuMat)
gpu_img = cv2.cuda_GpuMat()
gpu_img.upload(img)# 4. 创建 GPU 高斯滤波器并执行
gauss_filter = cv2.cuda.createGaussianFilter(cv2.CV_8UC3, cv2.CV_8UC3, (15, 15), 5)
gpu_blur = gauss_filter.apply(gpu_img)# 5. 下载回 CPU
blur = gpu_blur.download()# 6. 显示
cv2.imshow('Original', img)
cv2.imshow('Blurred (GPU)', blur)
cv2.waitKey(0)
cv2.destroyAllWindows()
第一次运行会有 JIT 编译 提示。
GPU 版的套路:upload → cv2.cuda.xxx → download。
任何 滤波 / 几何变换 / 光流 / DNN 都可以照搬这个模板。