彩色圖像的灰度化、二值化 以及什麼是索引圖像

【引言】在圖像預處理階段,對彩色圖像灰度化、二值化是常見的處理方式。通常是先對圖像做灰度化,再做二值化,它們能夠在特定場景發揮出功效,文本做梳理總結。

 

彩色圖像

每個像素通常是由紅(R)、綠(G)、藍(B)三個分量來表示的,分量介於(0,255)。RGB圖像與索引圖像一樣都可以用來表示彩色圖像。與索引圖像一樣,它分別用紅(R)、綠(G)、藍(B)三原色的組合來表示每個像素的顏色。但與索引圖像不同的是,RGB圖像每一個像素的顏色值(由RGB三原色表示)直接存放在圖像矩陣中,由於每一像素的顏色需由R、G、B三個分量來表示,M、N分別表示圖像的行列數,三個M x N的二維矩陣分別表示各個像素的R、G、B三個顏色分量。RGB圖像的數據類型一般爲8位無符號整形,通常用於表示和存放真彩色圖像,當然也可以存放灰度圖像。

 

灰度化(grayscale):

灰度是指只含亮度信息,不含色彩信息的圖像。黑白照片就是灰度圖,特點是亮度由暗到明,變化是連續的。要表示灰度圖,就需要把亮度值進行量化

使用灰度圖的好處:

 

①     RGB的值都一樣,即減少了計算量。

 

②     圖像數據即調色板索引值,就是實際的RGB值,也就是亮度值。

 

③     因爲是256色調色板,所以圖像數據中一個字節代表一個像素,很整齊。

 

所以,做圖像處理時都採用灰度圖。

 

 

 

二值化

  是將圖像上的像素點的灰度值設置爲0或255,也就是將整個圖像呈現出明顯的黑白效果。

將256個亮度等級的灰度圖像通過適當的閥值選取而獲得仍然可以反映圖像整體和局部特徵的二值化圖像。在數字圖像處理中,二值圖像佔有非常重要的地位。

首先,圖像的二值化有利於圖像的進一步處理,使圖像變得簡單,而且數據量減小,能凸顯出感興趣的目標的輪廓。

其次,要進行二值圖像的處理與分析,首先要把灰度圖像二值化,得到二值化圖像。

   所有灰度大於或等於閥值的像素被判定爲屬於特定物體,其灰度值爲255表示,否則這些像素點被排除在物體區域以外,灰度值爲0,表示背景或者例外的物體區域

下程序可以實現圖像的二值化:

 

/**************************************
*
*    函數名:
*            cvBinaryEx
*    參 數:
*            imgSrc    - 進行銳化的圖像
*    返回值:
*            成功銳化返回TRUE,否則返回false;
*    說 明:
*    
*            對圖進行二值化
*
************************************/
bool cvBinaryEx(IplImage *imgSrc)
{
    IplImage* img = cvCreateImage(cvGetSize(imgSrc),imgSrc->depth,imgSrc->nChannels);
    CvScalar s;
    int sum=0;
    for (int i=0; i < imgSrc->height; i++)
    {
        for (int j=0; j < imgSrc->width; j++)
        {
            s =  cvGet2D(imgSrc,i,j);
            sum = (s.val[0]+s.val[1]+s.val[2])/3;


            if (sum > 128)
            {
                s.val[0]=s.val[1]=s.val[2]=255;
                cvSet2D(imgSrc,i,j,s);
            }
            else
            {
                s.val[0]=s.val[1]=s.val[2]=0;
                cvSet2D(imgSrc,i,j,s);
        }
        }
    }

    return true;
}

 

 

 

 

索引圖像

即它的文件結構比較複雜,除了存放圖像的二維矩陣外,還包括一個稱之爲顏色索引矩陣MAP的二維數組。MAP的大小由存放圖像的矩陣元素值域決定,如矩陣元素值域爲[0,255],則MAP矩陣的大小爲256Ⅹ3,用MAP=[RGB]表示。MAP中每一行的三個元素分別指定該行對應顏色的紅、綠、藍單色值,MAP中每一行對應圖像矩陣像素的一個灰度值,如某一像素的灰度值爲64,則該像素就與MAP中的第64行建立了映射關係,該像素在屏幕上的實際顏色由第64行的[RGB]組合決定。也就是說,圖像在屏幕上顯示時,每一像素的顏色由存放在矩陣中該像素的灰度值作爲索引通過檢索顏色索引矩陣MAP得到。索引圖像的數據類型一般爲8位無符號整形(int8),相應索引矩陣MAP的大小爲256Ⅹ3,因此一般索引圖像只能同時顯示256種顏色,但通過改變索引矩陣,顏色的類型可以調整。索引圖像的數據類型也可採用雙精度浮點型(double)。索引圖像一般用於存放色彩要求比較簡單的圖像,如Windows中色彩構成比較簡單的壁紙多采用索引圖像存放,如果圖像的色彩比較複雜,就要用到RGB真彩色圖像。

 

參考:https://blog.csdn.net/timidsmile/article/details/6681668

https://blog.csdn.net/iamchenxin2014/article/details/70805928

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章