現在我們利用上一篇教程的方法,來統計一副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>