1. 程式人生 > >影象處理: 灰度化,二值化,反色

影象處理: 灰度化,二值化,反色

灰度化 (grayscale)

將彩色影象轉化為灰度影象的過程稱為影象灰度化。彩色影象中的畫素值由RGB三個分量決定,每個分量都有0-255(256種)選擇,這樣一個畫素點的畫素值可以有1600萬種可能(256*256*256),而灰度圖的畫素點的畫素值是RGB三個分量值相同的一種特殊的彩色影象, 只有256種可能。所以在影象處理中,往往將各種影象首先灰度化成灰度影象以便後續處理,降低計算量。灰度是指只含亮度資訊,不含色彩資訊的影象。黑白照片就是灰度圖,特點是亮度由暗到明,變化是連續的。灰度影象的描述與彩色影象一樣仍然反映了整幅影象的整體和區域性的色度和亮度等級的分佈和特徵,

使用灰度圖的好處:
①     RGB的值都一樣。
②     影象資料即調色盤索引值,就是實際的RGB值,也就是亮度值。
③     因為是256色調色盤,所以影象資料中一個位元組代表一個畫素,很整齊。
所以,做影象處理時一般都採用灰度圖。

要表示灰度圖,就需要把亮度值進行量化,有四種方法:

1、分量法

將彩色影象中的三分量的亮度作為三個灰度影象的灰度值,可根據應用需要選取一種灰度影象。

2、最大值法

將彩色影象中的三分量亮度的最大值作為灰度圖的灰度值。 

3、均值法

將彩色影象中的三分量亮度求平均得到灰度圖的灰度值。

4、加權平均法

根據重要性及其它指標,將三個分量以不同的權值進行加權平均。由於人眼對綠色的敏感最高,對藍色敏感最低,因此,按下式對RGB三分量進行加權平均能得到較合理的灰度影象,f(i,j)=0.30R(i,j)+0.59G(i,j)+0.11B(i,j))。

二值化(binaryzation)

影象的二值化是將影象上的畫素點的灰度值設定為0或255,也就是將整個影象呈現出明顯的黑白效果。將256個亮度等級的灰度影象通過適當的閥值選取而獲得仍然可以反映影象整體和區域性特徵的二值化影象。所有灰度大於或等於閥值的畫素被判定為屬於特定物體,其灰度值為255,否則這些畫素點被排除在物體區域以外,灰度值為0,表示背景或者例外的物體區域。在數字影象處理中,二值影象佔有非常重要的地位,首先,影象的二值化有利於影象的進一步處理,使影象變得簡單,而且資料量減小,能凸顯出感興趣的目標的輪廓。其次,要進行二值影象的處理與分析,首先要把灰度影象二值化,得到二值化影象。

二值化的常用演算法有:

全域性二值化: 一幅影象包括目標物體、背景還有噪聲,要想從多值的數字影象中直接提取出目標物體,最常用的方法就是設定一個全域性的閾值T,用T將影象的資料分成兩部分:大於T的畫素群和小於T的畫素群。將大於T的畫素群的畫素值設定為白色(或者黑色),小於T的畫素群的畫素值設定為黑色(或者白色)。全域性二值化,在表現影象細節方面存在很大缺陷。為了彌補這個缺陷,出現了局部二值化方法。

區域性二值化:按照一定的規則將整幅影象劃分為N個視窗,對這N個視窗中的每一個視窗再按照一個統一的閾值T將該視窗內的畫素劃分為兩部分,進行二值化處理。區域性二值化也有一個缺陷。這個缺陷存在於那個統一閾值的選定。這個閾值是沒有經過合理的運算得來,一般是取該視窗的平局值。這就導致在每一個視窗內仍然出現的是全域性二值化的缺陷。為了解決這個問題,就出現了局部自適應二值化方法。

區域性自適應二值化:在區域性二值化的基礎之上,將閾值的設定更加合理化。該方法的閾值是通過對該視窗畫素的平均值E,畫素之間的差平方P,畫素之間的均方根值Q等各種區域性特徵,設定一個引數方程進行閾值的計算,例如:T=a*E+b*P+c*Q,其中a,b,c是自由引數。這樣得出來的二值化影象就更能表現出二值化影象中的細節。

反色(inverse)

反色的實際含義是將R、G、B值反轉。若顏色的量化級別是256,則新圖的R、G、B值為255減去原圖的R、G、B值。這裡針對的是所有圖,包括真彩圖、帶調色盤的彩色圖(又稱為偽彩色圖)、和灰度圖。真彩圖不帶調色盤,每個象素用3個位元組,表示R、G、B三個分量。所以處理很簡單,把反轉後的R、G、B值寫入新圖即可,比如一個點的顏色為(0,0,0),反色後為(255,255,255)。帶調色盤的彩色圖,其點陣圖中的資料只是對應調色盤中的一個索引值,我們只需要將調色盤中的顏色反轉,形成新調色盤,而點陣圖資料不用動,就能夠實現反轉。