文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
1. Transparent API
OpenCV 3中的Transparent API就是OpenCV 2中的OCL模块,从OpenCV 3开始,已经没有OCL模块,取而代之的是Transparent API。Transparent API主要是用来提升性能的。
2. Usage
- 普通的Mat写法:
1 |
|
- Transparent API写法(UMat)
1 |
|
其实主要是将Mat变为UMat,其它的不变。Mat变为UMat有两种方式,一种是copyTo
,一种是getUMat
。
1 | # copyTo |
flag
下选项有ACCESS_READ,ACCESS_WRITE,ACCESS_RW,ACCESS_FAST
。
3. How to accelerate?
Transparent API主要是使用了OpenCL来进行加速,下面是OpenCL的介绍。
OpenCL(Open Computing Language,开放计算语言)是一个为异构平台编写程序的框架,此异构平台可由CPU、GPU、DSP、FPGA或其他类型的处理器与硬件加速器所组成。OpenCL由一门用于编写kernels(在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分区和数据分区的并行计算机制。
参考资料