【OpenCV学习】CudaOpenCVImageFilter

最近在学习,利用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/p/2541387.html