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模块,已经封装的内核函数的调用,其使用步骤如下:

  1. 验证OpenCV是否已启用GPU模块。
  2. 上传待处理数据到GPU (Mat --> GpuMat)。
  3. 调用OpenCV支持的GPU的处理函数。
  4. 下载处理结果到CPU (GpuMat ---> Mat)。

其示例程序如下,完成颜色转换,BGR2GRAY。

以上是关于OpenCV中GPU模块使用的主要内容,如果未能解决你的问题,请参考以下文章

CUDA(GPU) 作为 OpenCV 后端

Ubuntu安装opencv 为调用gpu模块

为啥 OpenCV Gpu 模块的性能比 VisionWorks 快?

OpenCV和Cuda结合编程

请问opencv的GPU模块里,与GpuMat挂钩的PtrStep 和 PtrStepSz两个数据结构有啥区别?

哪些 svm python 模块使用 gpu?