OpenCV2学习笔记(二十一):GPU模块小记

本文介绍了OpenCV的GPU模块,包括使用前的配置检查、与CUDA的关系、优势以及如何链接到工程。虽然GPU模块简化了GPU编程,但并非所有操作都比CPU快,且在多通道处理上存在局限。示例代码展示了矩阵转置的GPU实现。
摘要由CSDN通过智能技术生成

接触一下OpenCV里一个之前没有接触的模块:GPU。这里只是根据教程和网上一些文章进行简单的记叙,欢迎大家批评指正。

注:在使用GPU模块之前,需要确认在使用CMake编译OpenCV时,勾选了选项WITH_CUDA和WITH_TBB使其生效生效。

这里写图片描述

这里写图片描述

若以上配置已经完成,在使用GPU模块的函数之前,还做一下检查:调用函数gpu::getCudaEnabledDeviceCount,如果你在使用的OpenCV模块编译时不支持GPU,这个函数返回值为0;否则返回值为已安装的CUDA设备的数量。

OpenCV的GPU模块只支持NVIDIA的显卡,原因是该部分是基于NVIDIA的CUDA和NVIDIA的NPP模块实现的。而该模块的好处在于使用GPU模块无需安装CUDA工具,也无需学习GPU编程,因为不需要编写GPU相关的代码。但如果你想重新编译OpenCV的GPU模块的话,还是需要CUDA的toolkit。

由于GPU模块的发展,使大部分函数使用起来和之前在CPU下开发非常类似。首先,就是把GPU模块链接到你的工程中,并包含必要的头文件gpu.hpp。其次,就是GPU模块下的数据结构,原本在cv名字空间中的现在都在gpu名字空间中,使用时可以gpu::和cv::来防止混淆。

在GPU模块中,矩阵的类型为:GpuMat而不是OpenCV中使用的cv::Mat,其他的函数命名和CPU模块中相同。OpenCV中GPU模块函数的使用步骤如下:

1.验证OpenCV是否已启用GPU模块。

2.上传待处理数据到GPU (Mat 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值