天天看點

OpenCL 學習step by step (8) 灰階圖Histogram計算(2)

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

繼續閱讀