现在我们利用上一篇教程的方法,来统计一副RGBA图像中有多少个像素点(该像素点满足R, G, B, A任意分量>=5)。我考虑的方法是建立256 bin的直方图,对于一个像素,求max(R, G,B,A),用该值决定该像素点进入那个bin,这样求出直方图后,width*height - hostBin[0] - hostBin[1] - hostBin[2] - hostBin[3] - hostBin[4],即为我们要的结果。
本教程代码基本上和上一篇教程中代码是一样的,区别主要包括以下两点:
1、我们装入的是RGBA 彩色图。
//装入图像
unsigned char *src_image=0;
gFreeImage img;
if(!img.LoadImage("../lenna.jpg"))
{
printf("can‘t load lenna.jpg\n");
exit(0);
}
src_image = img.getImageData(width,height);
2、在kernel代码中,有点小变化,kernel代码如下:
完整的代码请参考:
工程文件gclTutorial8
代码下载:
<a href="http://files.cnblogs.com/mikewolf2002/gclTutorial.zip">http://files.cnblogs.com/mikewolf2002/gclTutorial.zip</a>