OpenCV中GPU模块使用
Posted ZONG_XP
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenCV中GPU模块使用相关的知识,希望对你有一定的参考价值。
CUDA基本使用方法
在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下:
1.主机代码执行;2.传输数据到GPU;3.确定grid,block大小;
4.调用内核函数,GPU运行程序;5.传输结果到CPU;6.继续主机代码执行。
下图是两个向量相加的简单示例程序和处理流图。
注意的问题:cu,cpp文件的组织
内核函数和其wrapper函数置于cu文件中。
在cpp文件声明wrapper函数,并调用wrapper函数。
wrapper函数的声明定义需加extern "C"。
OpenCV中GPU模块的使用
使用的步骤与CUDA的基本使用方法类似,只是OpenCV中GPU模块,已经封装的内核函数的调用,其使用步骤如下:
- 验证OpenCV是否已启用GPU模块。
- 上传待处理数据到GPU (Mat --> GpuMat)。
- 调用OpenCV支持的GPU的处理函数。
- 下载处理结果到CPU (GpuMat ---> Mat)。
其示例程序如下,完成颜色转换,BGR2GRAY。
以上是关于OpenCV中GPU模块使用的主要内容,如果未能解决你的问题,请参考以下文章
为啥 OpenCV Gpu 模块的性能比 VisionWorks 快?