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

Gray = R*0.299 + G*0.587 + B*0.114

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


下面我们看代码。

gray.cl代码:

codeblocks详细使用教程(codesoft函数公式教程) 第1张  codeblocks详细使用教程(codesoft函数公式教程) 第2张  

主程序代码:

codeblocks详细使用教程(codesoft函数公式教程) 第3张  codeblocks详细使用教程(codesoft函数公式教程) 第4张    codeblocks详细使用教程(codesoft函数公式教程) 第5张  codeblocks详细使用教程(codesoft函数公式教程) 第6张    codeblocks详细使用教程(codesoft函数公式教程) 第7张  codeblocks详细使用教程(codesoft函数公式教程) 第8张    codeblocks详细使用教程(codesoft函数公式教程) 第9张  codeblocks详细使用教程(codesoft函数公式教程) 第10张    codeblocks详细使用教程(codesoft函数公式教程) 第11张  codeblocks详细使用教程(codesoft函数公式教程) 第12张    codeblocks详细使用教程(codesoft函数公式教程) 第13张  codeblocks详细使用教程(codesoft函数公式教程) 第14张    codeblocks详细使用教程(codesoft函数公式教程) 第15张  codeblocks详细使用教程(codesoft函数公式教程) 第16张