You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用带CUDA支持的OpenCV在Python中实现GPU图像旋转?

基于OpenCV CUDA的图像旋转Python实现

你已经编译好带CUDA支持的OpenCV 4.6.0,直接借助cv2.cuda模块就能实现GPU加速的图像旋转,核心逻辑是将CPU端图像数据上传到GPU完成计算,再把结果回传到CPU进行显示。

完整实现代码如下:

import cv2

# 可选:验证CUDA设备是否正常识别
if cv2.cuda.getCudaEnabledDeviceCount() == 0:
    print("未检测到可用CUDA设备")
    exit()

# 读取CPU端图像
img = cv2.imread("cat.3.jpg")
if img is None:
    print("无法读取目标图像文件")
    exit()

# 将图像数据上传至GPU,转为GpuMat对象(GPU内存中的数据载体)
gpu_img = cv2.cuda.GpuMat()
gpu_img.upload(img)

# 在GPU上执行90度顺时针旋转,参数与CPU版cv2.rotate完全一致
gpu_rotated = cv2.cuda.rotate(gpu_img, cv2.ROTATE_90_CLOCKWISE)

# 将GPU端处理结果下载回CPU内存
rotated_img = gpu_rotated.download()

# 显示旋转后的图像
cv2.imshow("cat", rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

关键细节说明:

  • GpuMat是OpenCV CUDA模块的核心数据结构,所有GPU加速操作必须基于该对象执行,不能直接使用CPU端的numpy.ndarray(即cv2.imread返回的图像对象)。
  • upload()/download()分别负责CPU与GPU之间的数据拷贝,这两步是跨设备操作的必要环节。
  • 若需要实现任意角度旋转,可使用cv2.cuda.warpAffine配合旋转矩阵完成,操作逻辑与CPU端一致,只需将所有数据对象替换为GpuMat即可。

内容的提问来源于stack exchange,提问作者Jonny_92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 00:35:20