编译支持GPU的opencv,并供python的import cv2调用

下载opencv和opencv_contrib,cmake过程中要下载的一些包可以手动下载配置,如果网络较好,也可以等待自动下载。主要记录的是cmake命令:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
                -D BUILD_opencv_python3=YES \
                -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4_5_0 \
                -D WITH_TBB=ON \
                -D ENABLE_FAST_MATH=1 \
                -D CUDA_FAST_MATH=1 \
                -D WITH_CUBLAS=1 \
                -D WITH_CUDA=ON \
                -D BUILD_opencv_cudacodec=On \
                -D WITH_CUDNN=ON \
                -D CUDA_ARCH_BIN=8.6 \
                -D WITH_OPENGL=ON \
                -D WITH_OPENCL=ON \
                -D WITH_GSTREAMER=ON \
                -D OPENCV_GENERATE_PKGCONFIG=ON \
                -D OPENCV_PC_FILE_NAME=opencv4.pc \
                -D OPENCV_PYTHON3_INSTALL_PATH=/home/user/data2t/software/anaconda3/envs/py38/lib/python3.8/site-packages \
                -D OPENCV_ENABLE_NONFREE=ON \
                -D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
                -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
                -D OpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so \
                -D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so \
                -D OpenCL_INCLUDE_DIR=/usr/local/cuda/include \
                -D OPENCV_EXTRA_MODULES_PATH=/home/user/data1t/3rdparty/opencv-4.5.0/opencv_contrib/modules \
                -D PYTHON3_LIBRARIES=/home/user/data2t/software/anaconda3/envs/py38/lib/libpython3.8.so \
                -D PYTHON3_PACKAGES_PATH=/home/user/data2t/software/anaconda3/envs/py38/lib/python3.8/site-packages \
                -D PYTHON3_INCLUDE_PATH=/home/user/data2t/software/anaconda3/envs/py38/include/python3.8 \
                -D INSTALL_PYTHON_EXAMPLES=ON \
                -D INSTALL_C_EXAMPLES=ON \
                -D BUILD_SHARED_LIBS=ON \
                -D BUILD_EXAMPLES=ON \
                -D BUILD_opencv_python2=OFF \
                -D BUILD_opencv_python3=ON \
                -D HAVE_opencv_cudaarithm=ON \
                -D HAVE_opencv_cudawarping=ON \
                -D PYTHON3_EXECUTABLE=/home/user/data2t/software/anaconda3/envs/py38/bin/python \
                ..

make -j 12
sudo make install

查看编译后的opencv用cv2调用是否支持GPU的方法:

cv2.cuda.getCudaEnabledDeviceCount()

这里有个opencv编译参数一览表:https://blog.csdn.net/qq_31112205/article/details/107039695

### 如何在 Python OpenCV 中启用 GPU 加速 为了在 Python OpenCV 中利用 GPU 加速使用 CUDA 进行图像处理,需遵循特定的配置流程。这不仅涉及软件环境的搭建,还包括代码层面的具体实现。 #### 安装带有 GPU 支持OpenCV 版本 确保安装的是具备 GPU 功能支持OpenCV 库版本。通常情况下,官方预构建二进制文件可能不包含完整的 GPU 模块支持,因此建议通过源码编译方式获取最新特性[^3]。对于 Docker 用户而言,在 Linux 系统上编译安装 GPU (CUDA) 版本 Opencv 是一种常见做法,需要注意检查 `CUDA_ARCH_PTX` 或者 `CUDA_ARCH_BIN` 参数设置以匹配目标硬件架构[^4]。 #### 配置开发环境 确认计算机配备有兼容的 NVIDIA 显卡,已正确安装对应的驱动程序及 CUDA Toolkit。这些组件是运行基于 CUDA 的应用程序所必需的基础设施[^2]。此外,还需验证 PyCUDA 或其他必要的依赖库已被妥善安装以便于后续操作。 #### 启用 CUDA 模块 一旦上述准备工作完成,则可以在 Python 脚本里导入 cv2.cuda 命名空间下的类和函数来访问 GPU 加速功能。下面给出一段简单的例子展示如何加载图片到 GPU 设备内存中执行基本变换再传回主机端显示: ```python import numpy as np import cv2 # 初始化上传至设备的对象实例 img_host = cv2.imread('example.jpg') img_device = cv2.cuda_GpuMat() img_device.upload(img_host) # 创建用于存储结果的工作区对象 result_device = cv2.cuda_GpuMat() # 执行某种形式的数据转换作为示范;实际应用取决于具体需求 cv2.cuda.cvtColor(img_device, cv2.COLOR_BGR2GRAY, result_device) # 下载计算完毕后的数据回到 CPU 可见区域准备进一步处理或可视化呈现 result_host = result_device.download() # 展现最终效果给用户查看 cv2.imshow('Processed Image', result_host) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段脚本展示了从读入原始图像开始直到将其颜色模式由 BGR 调整为灰度级结束的过程,期间所有耗时的操作均交给了图形处理器负责从而减轻中央处理器负担提升整体效率[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值