快捷搜索:  汽车  科技

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)下面我们看代码。使用图片灰度处理后输出图片

这节我们来说一下,如何用OpenCL来对图片进行灰度处理。灰度处理公式很简单,如下:

Gray = R*0.299 G*0.587 B*0.114

我们只要把图片数据读取出来,让每个工作组包含四个数据(RGBA)。当然你也可以用RGB,只读三个数据。交OPENCL处理就可以了。由于每个像素值的处理方式相同,所以我们只有一维数组就可以了。

读取和保存处理后的图片是重点,建议大家先阅读下这两篇文章Codeblocks下Freeimage编程(1)—图片读取和Codeblocks下Freeimage编程(2)—创建图片。

下面我们看代码。

gray.cl代码:

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(1)

主程序代码:

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(2)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(3)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(4)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(5)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(6)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(7)

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(8)

使用图片

codeblocks编写代码的前后过程(用Codeblocks进行OpenCL编程7)(9)

灰度处理后输出图片

猜您喜欢: