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

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

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

下面我们看代码。

gray.cl代码:

主程序代码: