OpenCV的Transparent API
来源:互联网 发布:mac上使用搜狗输入法 编辑:程序博客网 时间:2024/06/16 06:41
文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
1. Transparent API
OpenCV 3中的Transparent API就是OpenCV 2中的OCL模块,从OpenCV 3开始,已经没有OCL模块,取而代之的是Transparent API。Transparent API主要是用来提升性能的。
2. Usage
- 普通的Mat写法:
#include "opencv2/opencv.hpp"using namespace cv;int main(int argc, char** argv){ Mat img, gray; img = imread("image.jpg", 1); cvtColor(img, gray, COLOR_BGR2GRAY); GaussianBlur(gray, gray,Size(7, 7), 1.5); Canny(gray, gray, 0, 50); imshow("edges", gray); waitKey(); return 0;}
- Transparent API写法(UMat)
#include "opencv2/opencv.hpp"using namespace cv;int main(int argc, char** argv){ UMat img, gray; imread("image.jpg", 1).copyTo(img); cvtColor(img, gray, COLOR_BGR2GRAY); GaussianBlur(gray, gray,Size(7, 7), 1.5); Canny(gray, gray, 0, 50); imshow("edges", gray); waitKey(); return 0;}
其实主要是将Mat变为UMat,其它的不变。Mat变为UMat有两种方式,一种是copyTo
,一种是getUMat
。
# copyToUMat img;imread("image.jpg", 1).copyTo(img);# getUMatMat mat = imread("image.jpg", IMREAD_COLOR); // Get umat from mat. UMat umat = mat.getUMat(flag);
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提供了基于任务分区和数据分区的并行计算机制。
参考资料
http://www.learnopencv.com/opencv-transparent-api/
https://zh.wikipedia.org/wiki/OpenCL
0 0
- OpenCV的Transparent API
- OpenCV Transparent API
- wince 下Transparent的实现
- background-color的默认值:transparent
- 用于测量OpenCV的API
- opencv API
- Activity 透明,半透明效果的设置transparent
- Activity 透明,半透明效果的设置transparent
- css中的background:transparent的作用
- Linux 关于Transparent Hugepages的介绍
- css中的background:transparent的作用
- Unity 获得Transparent材质的深度纹理
- Linux的Transparent Hugepage与关闭方法
- Activity的透明、半透明效果的设置transparent
- Seek Bar thumb not transparent in Android 5.0 API 21 Lollipop
- IE6不支持border-color:transparent 的问题解决(转载)
- C# 控件BackColor = Color.Transparent没有透明的原因
- android Activity 透明,半透明效果的设置transparent
- 区块链投资现状和区块链应用部署的探讨
- 图的广度优先遍历
- 切面 aop方法拦截处理
- Elasticsearch1.7集群搭建
- Linuxgcc编译动态链接库*.so文件调用示例
- OpenCV的Transparent API
- Thread的join()方法
- log4j打印sql语句
- 安卓视频播放器 一行代码快速实现视频播放,Android视频播放,AndroidMP3播放,安卓视频播放一行代码搞定
- R语言入门之Hello world
- Source Insight 常用设置和快捷键大全
- android 开发使用okhttp进行网络请求简单介绍(未测试)
- ORACLE 11G R2 RAC+Mutilpath+RAW+ASM+Silent+AddNode+DG 完全安装详解 (三)
- 《css揭秘》-学习笔记1