最近在学习,利用CUDA加速图像处理方面知识.

下面主要介绍codeproject上的一个项目例子.利用cuda进行图像滤波处理.

网址:http://www.codeproject.com/Articles/206036/Image-Filters-using-CPU-and-GPU

其处理流程如下:

其中,也可以从视频文件中读取数据,进行处理.

主要类图如下所示:

ISingleImageFilter是抽象类,提供接口,SingleImageFilter实现抽象类的基类,增加一些属性成员变量.

利用虚函数实现多态,通过指向基类的指针调用不同子类的函数实现.

思考点:

1).其类体的设计,以及类之间的继承关系,比较好.

利用虚函数来实现不同的滤波操作,实现cpu,gpu,gpu上是否使用纹理等不同版本的滤波操作.

2).基于cuda的滤波实现,利用内核函数入口的指针,分离内核函数的实现,便于利用nvcc来编译内核函数.

3).基于cuda的滤波的优化扩展,只需修改其内核函数的实现,以及相应的指针即可.

4).更多滤波操作的扩展,只需继承SingleImageFilter类,并实现虚函数FilterImage(char *imageData)即可.

后期工作:

1).针对不同的滤波操作,在cuda实现,提供其优化版本.

2).新建MultiImageFilter接口,使其可以让Multi Image一起进行滤波操作.

转载于:https://www.cnblogs.com/dwdxdy/archive/2012/06/08/2541387.html

【OpenCV学习】Cuda-OpenCV-Image-Filter相关推荐

  1. OpenCV学习-P34-P38 Opencv边缘检测

    OpenCV学习-P34-P37 Opencv边缘检测 Sobel检测算子 Laplacian检测算子 Canny边缘检测算法 边缘检测总结 边缘检测分为两类:基于搜索和基于零穿越 基于搜索:寻找图像 ...

  2. OpenCV学习-P29-P32 Opencv直方图均衡化、掩膜

    OpenCV学习-P29-P32 Opencv直方图均衡化及掩膜 1 直方图 2 直方图均衡化 3 直方图自适应均衡化 1 直方图 直方图原理:统计图像各个灰度区间的像素数 cv2.calcHist( ...

  3. opencv学习(part1)--OpenCv框架介绍

    学习笔记,仅供参考,有错必究 文章目录 opencv学习 OpenCv框架介绍 二值图像分析 二值图像定义与说明 图像二值化介绍 常见的二分类分割方法 opencv学习 OpenCv框架介绍 Open ...

  4. OpenCV学习(22) opencv中使用kmeans算法

    kmeans算法的原理参考:http://www.cnblogs.com/mikewolf2002/p/3368118.html 下面学习一下opencv中kmeans函数的使用. 首先我们通过Ope ...

  5. Opencv学习笔记——opencv配置安装与IDE环境安装

    文章目录 前言 一.opencv配置安装 二.IDE的安装 总结 前言 既然开始对AI视觉这个方面有兴趣,也初步接触了一些AI视觉在嵌入式方面的应用,那自然少不了对Opencv的学习.到现在开始学习o ...

  6. Opencv学习笔记 - OpenCV 4机器学习算法简介

    在机器学习中,一些比较流行方法的包括:支持向量机(SVM).人工神经网络(ANN).聚类.k-最近邻.决策树和深度学习.OpenCV支持并实现几乎所有这些方法,并有详细的文档说明(包含在Main mo ...

  7. OpenCV学习——绘制OpenCV徽标

    今天看到一个关于OpenCV的练习题,用绘图功能创建OpenCV的徽标. 关于OpenCV的绘图功能,在下面这篇笔记里写过了,这里不再多写,直接上代码!OpenCV学习--绘图功能_笨小古的博客-CS ...

  8. Opencv学习_3 (Opencv读取视频 视频进度控制 写视频)

    opencv读取视频: 使用opencv读取视频主要用到这几个函数:cvCreateFileCapture  cvQueryFrame (或cvGrabFrame cvRetrieveFrame)   ...

  9. OpenCV学习(1) OpenCV的安装

    前沿 准备了好几天,终于开始了,不管怎样,接下来的这个月一定把这本书很好的啃下来.当然OpenCV可以在很多的IDE下安装与配置,我这里就只在VS2010和VC6.0下安装配置了,当然这篇博文主要讲在 ...

  10. OpenCV学习:OpenCV源码编译(vc9)

    安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要 ...

最新文章

  1. linux驱动:i2c驱动(三)流程图之注册设备
  2. git常用命令和场景
  3. 添加RichEdit控件导致MFC对话框程序无法执行的解决方法
  4. Android实现程序之间的跳转
  5. 散户“大溃败”?GME连续5日暴跌80% 白银价格急转直下
  6. Widows下TortoiseGit登录密码错误
  7. javascript事件之:谈谈自定义事件
  8. 百度地图集成Plist文件需要增加的字段
  9. Item 22. 模板方法与曲线救国(Template Method)
  10. 如何在Linux上安装Oracle客户端连接工具sqlplus
  11. 计算机组成原理——输入/输出系统(I/O接口外设中断)
  12. 这套精美的开源数据报表模板,美呆了
  13. 如何在AD中批量创建域用户
  14. VScode前进和后退按钮,非快捷键
  15. 关于SuperSlide插件的使用
  16. 《个人理财》书中的精髓:如何通过金融学理论知识的学习,建立更加完善的金融体系,让自己更加富有。
  17. 爱回收上市进程加速:原云集CFO陈晨加盟,转转等强敌环伺
  18. 商品表(spu)、规格表(sku)设计
  19. 怎么录制屏幕视频?电脑按哪个键录制屏幕
  20. 【转载】elsarticle使用入门2 爱思唯尔(Elsevier)期刊模板的使用

热门文章

  1. Automatic IE Testing With Python
  2. 浅谈iPhone和iPad开发中的图标设置
  3. Video4Linux
  4. 2.3.6 Federate 远程访问数据库
  5. 设c语言中 一个int型数据库,最新真实全国二级C选择题真题第1套
  6. Kubernetes集群部署
  7. 跨站请求伪造攻击(CSRF)
  8. android多语言编码格式,在Android中使用国家/地区代码以编程方式更改语言
  9. 对话李飞飞,展望阿里云与MongoDB战略合作未来
  10. 发布会预告 | 多账号管控与网络安全集中化管理能力升级