調色板
調色板(Palette)也叫顏色查找表,是指在16色(每個像素4個bit,總共有16種顏色)或256色(每個像素8個bit,即一個字節,總共有256種顏色)顯示系統中由圖像中出現最頻繁的16種或256種顏色所組成的查找表。對這些顏色按4位(16色)或8位(256色),即0-15或0-255進行編號,每一個編號(索引值)代表R,G,B,3個分量24位的顏色值.使用調色板的圖像叫做調色板圖像.對於調色板圖像而言,它們的像素值並不是顏色值,而是顏色在調色板查找表中的索引號.
圖像的顏色處理
自然界的顏色可以簡單地分為黑白色(包括灰度級)和彩色兩種.
彩色圖像處理分為3個主要處理領域,即真彩色,假彩色和偽彩色處理領域.在真彩色處理中,被處理的圖像一般從真彩色傳感器中獲得,例如彩色攝像頭或彩色掃描儀;假彩色處理時一種盡量接近真彩色的人工彩色處理技術;偽彩色處理時將彩色分配給某種灰度(強度或強度范圍),以增強辨識能力.
1.將256色位圖轉換為灰度圖
位映像
圖像顯示時是采用掃描方式,即電子槍每次從左到右掃描一行,為每個像素着色,然后再從上倒下掃描整個屏幕,利用人眼的視覺殘留效應就可以顯示出一屏完整的圖像.我們常說的屏幕分辨率是1024X768,刷新頻率為85Hz,意思為每行掃描1024個像素,一共要掃描768行,每秒重復85次.一般刷新頻率大於80Hz時.人眼感受不到屏幕刷新引起的閃爍,這種顯示器就成為位映像設備.因而所謂的位映像,實質上就是一個二維(行和列)的像素矩陣.
位圖:
位圖就是采用位映像方法顯示和存儲的圖像.
256色位圖
自然界的任何顏色都可以通過RGB三原色合成.有的顏色含紅色成分多些,其他成分少些.針對含有紅色成分的多少,可以將顏色分為0至255共256個等級.0級表示不含紅色成分,255表示含有100%的紅色成分.同樣,綠色和藍色也可以分為256個等級.這樣,R,G,B的各種不同的組合就能表示256X256X256(約1600萬)種顏色.當從大約1600萬的顏色中選用最常用的256中顏色給位圖的像素進行着色時,就得到256色位圖.因而,256色位圖是一種很具有吸引的彩色位圖.
灰度圖
灰度圖(Grayscale)是數字圖像處理中的一個比較簡單但卻非常重要的概念.它只含有亮度信息,不含色彩信息.從YIQ或YUV色彩系統轉換公式可以看出,當R=G=B時,除了Y值不為0外,I,Q值和U,V值都為0,即只有亮度信息,沒有色彩信息.灰度圖就是這樣一種特殊位圖,他每個像素的R,G,B分量都相等.通常把R,G,B顏色分量量化為0至255共256個級別,0表示最暗(黑),255表示最亮(白).經過這樣的量化之后,灰度圖成了一種特殊的256色位圖,其調色板的每一個選項的RGB分量都是相同的,即從(0,0,0),(1,1,1)一直到(255,255,255).(0,0,0)是全黑色,(255,255,255)是全白色,中間是灰色.
256色到灰度圖的轉換
1.最大值法 是R,G,B的值等於他們中的最大值
即 R=G=B=max(R,G,B)
2.平均值法 求 R,G,B的平均值
即 R=G=B=(R+G+B)/3
3.加權平均法 對R,G,B三值球加權平均值
即 R=G=B=(wr * R + wg * G + wb* B)/3
其中,wr,wg,wb分貝為R,G,B的權值
4.色彩系統變換法 由 RGB與YIQ色彩系統變換公式可知,當R=G=B時,即得到相應的灰度值為
Y=0.299 * R + 0.587 * G + 0.114 * B
將灰度圖像轉換為256色位圖
這種將灰度圖轉換為彩色圖像的方法通常稱之為圖像的偽彩色處理.
對灰度圖像進行偽彩色變換,只需要指定偽彩色的調色板替換為原來的調色板即可.
目前常用的偽彩色的調色板有以下幾種,紅飽和度編碼,綠飽和度編碼,藍飽和度編碼,黃飽和度編碼,青色飽和度編碼,紫色飽和度編碼,彩虹編碼,熱金屬編碼
將真彩色圖像轉換為256色位圖
真彩色圖像指的是能真實地反映自然物體本來顏色的圖像.大多數彩色圖像采集系統都采用24位的真彩色(每個像素12個bit)來存儲圖像,以便最大限度地保證圖像信息的完整性.將24位真彩色圖像轉化為8位的256色圖像,通常稱為對圖像進行減色處理.
將真彩色圖像轉化為256色位圖的關鍵是要生成一個合適的調色板,因為要顯示256色位圖必須使用調色板.該調色板是否合適是以用調色板顯示圖像時是否能最大限度地反映真彩色圖像的彩色信息為標准.由於256色位圖調色板僅能顯示256種顏色,因此,當真彩色圖像轉化為256色位圖時,就必須從真彩色所能表現的大約16M中顏色中選取最代表性或出現頻率最高的256中顏色.在前面提到,在這256種調色板顏色中,有20中顏色是windows預留的.因此,實際只需要選出236中顏色.確定了用來填寫調色板的256中顏色后,其余的顏色就用與選定的256中顏色最相似的顏色來代替,這也是不得已而為之,因為256色位圖的表現能力有限.
要想從真彩色圖像所能表現的大約16M中顏色中選取最代表性或者出現頻率最高的256中顏色,目前廣泛的采用的方法主要有以下3種 :
流行色算法(popularity algorithm)
是對彩色圖像中所有顏色出現的次數所統計分析,即創建一個數組記錄各種顏色和該顏色出現的頻率,然后把出現次數最多(頻率最大)的236中顏色作為調色板的顏色.該算法實現起來比較簡單,但該算法可能丟失一些出現頻率較低但是視覺效果明顯的信息.
中位切分算法(median-cut algorithm)
在RGB彩色空間中,R,G,B三基色對應於空間的3個坐標軸,並將每一個坐標軸都量化到0-255.0對應全黑,255對應全白.這樣就形成了一個邊長256的彩色立方體.所有可能的顏色都對應於立方體上的一個點.將彩色立方體切分成236個小立方體(每個小立方體中都包含了相同數量的圖像中出現的顏色點.求出每一哦小立方體的中心點,這些中心點所表示的顏色就是最能代表圖像顏色特征的236種顏色).中位切分法被廣泛引用,但該算法設計復雜的排序工作,而且內存開銷較大.
八叉樹顏色量化算法
將圖像的R,G,B顏色值分布到層狀的八叉樹中.八叉樹的深度最多為9層,即根節點層和分別表示8位的R,G,B值的8個節點層.較及其不重要的R,G,B值的位(R,G,B右邊的位).因此,為了提高效率和節省內存,通常並不把8位R,G,B分量值都用上.......
2010.03.27
圖像增強
圖像增強的目的:1.人眼看着更舒服;2.適合機器進行分析處理.
空域處理法:
數字圖像f(x,y)經增強處理后,得到一幅新的數字圖像g(x,y),這種方法就叫做空域處理法.在二維圖像空間進行增強處理,主要是在灰度級上做文章,即利用灰度對比度增強的方法,進行灰度級映射變換.
頻域處理法:
將離散圖像f(x,y)進行傅立葉變換F(u,v),在空間頻率進行濾波處理后得到新的圖像G(u,v),再經過傅立葉逆變換得到圖像g(x,y),這種方法就做頻域法處理.卷積定理是頻域法處理的基礎.
一般情況下,用空域法增強圖像是較有效的方法,而頻域法則有可能產生交疊誤差,造成圖像失真.同時,頻域法處理圖像時占用內存多,計算比較費時,因而能用空域法就不采用頻域法.使用頻域法可以進行正,逆變換,將乘除運算變為加減運算.
灰度變換法:
灰度變換法是一種空間域圖像增強的方法,也是圖像增強中技術比較簡單的方法.它是將圖像f(x,y)的灰度級按照一定的映射關系變換為新圖像g(x,y)的灰度級.通常有線性灰度變換,分段線性變換,非線性灰度變換等方法.當圖像由於成像時曝光不充分或過度,成像設備的非線性或圖像計量設備動態范圍小等因素造成圖像對比度不知,細節分辨率不清時,對圖像進行灰度線性擴展常能顯著改善圖像質量.為了突出圖像中感興趣的灰度區間或圖像中的目標,相對抑制圖像中不感興趣的灰度區間,可采用分度線性法.
線性灰度變換:
線性灰度變換的基本思想是把原圖像的灰度值按照固定的比例關系進行放大或縮小.例如:原圖像的像素灰度值的范圍為[20,100],如果我們把所有的灰度值同時擴大兩倍,則得到新圖像的灰度值的范圍是[40,200].
分段線性灰度變換
分段灰度線性變換的基本思想是對原圖像中不同灰度范圍的像素值放大或縮小不同的倍數.一般采用三段線性變換.
非線性灰度變換:
一般采用對數變換和指數變換兩種形式.
對數變換:當希望對圖像的低灰度區有較大的擴展而對高灰度區進行壓縮時,一般采用該變換.
指數變換:這種變換對圖像的高灰度區有較大的擴展.
直方圖均值法:
灰度直方圖簡介:
灰度級直方圖是一種函數,它表示數字圖像中每一灰度級與該灰度級出現的頻率之間的對應關系.
假設數字圖像總的像素為n,某一灰度r的像素的數目為m,曾m/n就是相對頻率.也就是灰度級為r的像素出現的頻率.灰度直方圖是由若干根線條組成的圖形,每一根線條代表了某一灰度級像素在整個圖像中出現的頻率.
如果能使圖像的直方圖是平直的,即各灰度級基於相同的出現頻率,那么,由於灰度級具有均勻的概率分布,腿昂看起來就比較清晰.真正增強方法稱為直方圖均衡法.
方差均衡法:
方差均衡法多用於指紋識別中.計算圖像的方差和均值,再根據期望的均值和方差計算.
圖像平滑技術:
主要目的是減少由於圖像采樣系統的質量因素而產生的噪音.一般情況下,在空域內可以用鄰域平均來減少噪音;在頻率內,郵件噪音頻譜通常在高頻段,因此可以采用各種形式的第通道濾波方法來減少噪音.
圖像平滑一般有兩種方法:一種是加權平均法,一種是低通濾波法.其中低波濾波法屬於頻域法圖像增強技術.
加權平均法是取一個nxn的窗口,並取窗口內的n^2個像素的灰度級的加權平均值取代中心像素原來的灰度級.加給每一個像素的灰度級的權值是該像素在灰度級上接近程度的一種度量.
模板的選取:相等加權,錐形加權,灰度差倒數加權.
種植濾波法:
中值濾波是一種非線性的濾波技術,與其對應的中值濾波器當然也就是一種非線性濾波器.中值濾波在一定條件下可以克服線性濾波器如最小均方濾波,均值濾波等帶來的圖像細節模糊,而且對抑制圖像中的脈沖干擾和椒鹽噪音特別有效.因為這些噪音在圖像中往往以鼓勵點的形式出現,與之對應的像素又比較少,所有采用中值濾波能有效的去除這些噪音,達到圖像增強的目的.
中值濾波法一般采用一個含有奇數個點的滑動窗口,對該窗口內的諸像素灰度排序,用其中值代替窗口中心像素原來的灰度值,或者說用局部中值代圖像模糊替局部平均值.
圖像的銳化
圖像模糊的實質是圖像受到平均或積分造成的,因此可對圖像進行逆運算如做微分運算來是圖像清晰化.從頻譜角度來看,圖像模糊的實質是其高頻分量被衰減,因而可以通過高通濾波清晰圖像.值得一提的是,對圖像進行銳化處理時,圖像必須具有較高的信噪比,否則銳化處理后,圖像的信噪比反而更低,從而使噪聲的增加比信號還要多.因此,一般是先去除或減弱噪聲后再進行銳化處理.
圖像的銳化方法一般有兩種方法:一種是微分法,一種是高通濾波法.
常用的微分銳化方法主要有兩種,即梯度銳化和拉普拉斯銳化.
低通濾波法:
在二維數字圖像中,干擾和噪聲經傅立葉變換后多反映在高頻分量中.因此,對圖像進行傅立葉變換后,在頻域進行低通濾波,是低頻分量無損通過,對高頻分量進行抑制和衰減,即可達到圖像增強的目的.
常用的集中低通濾波器:理想低通濾波器,巴特奧斯低通濾波器,指數低通濾波器,梯度低通濾波器.
高通濾波法:
由於圖像中邊緣與灰度級的急劇變化都與圖像的高頻分量有關,因而在頻域中用高通濾波器濾波能夠使圖像尖銳化.高通濾波器可以衰減圖像傅立葉變化中的低頻分量,而無損傅立葉變換中的高頻信息.
常用高通濾波器:理想高通濾波器,巴特奧斯高通濾波器,指數高通濾波器,梯度高通濾波器.
圖像的邊緣檢測:
圖像的邊緣檢測(或叫邊緣增強)是使圖像的輪廓更加突出的圖像處理方法.在對圖像進行特征提取之前,一般都進行邊緣檢測,然后再進行二值化處理.邊緣檢測將突出圖像的邊緣,邊緣以外的圖像區域通常被削弱甚至被完全去掉.處理后邊界的亮度與原圖中邊緣周圍的亮度變化率成正比.
微分算子邊緣檢測:
邊緣的檢測常借助空域微分算子進行,通過將其模板與圖像卷積完成.兩個具有不同灰度值的相鄰區域之間總會存在灰度邊緣.這種不連續的灰度邊緣常可利用求導數的方法檢測到.一般用一階和二階導數來檢測邊緣,這是因為在邊緣地帶導數值達,而非邊緣地方導數值小.
圖像中目標的邊緣可通過求導數來確定.但是數字圖像是離散的,不能求導數.那該怎么辦?方法很簡單,離散的數字圖像不能求導數,求差分卻是可以的,那么我們就用求差分來近似求導數.
哈夫變換
哈夫變換方法是利用圖像全局特性直接檢測目標輪廓,即可將邊緣像素連接起來組成區域封閉邊界的一種常用方法.在預知區域形狀的條件下,利用哈夫變換可以方便地得到邊界曲線二凈不連續的邊緣像素點連接起來.哈夫變換的主要優點是受噪聲和曲線間斷的影響較小.
梯度算子:梯度對應一階導數,因而梯度算子是一階導數算子.
Roberts邊緣檢測算子:利用局部差分方法尋找邊緣的算子,是一種平方根運算.對具有陡峭的低噪聲圖像影響最好.
Sobel邊緣檢測算子:采用兩個卷積核.對灰度級漸變和噪聲較多的圖像處理得較好.
Prewitt邊緣檢測算子:采用兩個卷積核.
梯度算子雖然簡單,但都對噪聲有一定的敏感性.由於噪聲的影響,常需要對梯度算子的結果進一步選取閾值做二值化處理,以區分真假邊緣點.
方向算子:
方向算子也能用來檢測圖像的邊緣.方向算子利用一組模板分別計算不同方向上的差分值,取其中的最大值作為邊緣強度,而將與之對應的方向作為邊緣方向.
平移和差分算子:
平移和差分算子可分為垂直邊緣算子,水平邊緣算子和水平與垂直邊緣算子3中,他們采用不同的卷積核.
該方法的實現思路是首先將圖像平移一個像素,然后用原圖像減去平移后的圖像.用相減后的結果來反映原圖像亮度變化率的大小.如果原圖像某個區域中的像素保持不變,相減的結果當然為零,即像素為黑;如果圖像中某個區域的像素變化劇烈,相減后的結果就會較大,即得到較大的變化率,對應的像素很亮.值得注意的是,如果相減后的像素為負值,則應取其絕對值,以保證原圖像像素比平移后圖像像素更亮或更黑時,都能得到有效的增強.當要檢測垂直邊緣時使用垂直方向的卷積核,其結果是先將圖像向左平移一個像素,再用原圖像減去平移后的圖像;當要增強水平邊緣是使用水平方向卷積核,其結果是先將圖像向左上移一個像素,再用原圖像減去平移后的圖像;當要同時增強水平和垂直方向的邊緣時,利用水平與垂直方向卷積核,其結果是先將圖像向左上移一個像素,再向左平移一個像素,然后用原圖像減去平移后的圖像.
梯度方向算子:
梯度方向算子增強根據邊緣檢測方向不同可以有8個不同的卷積核,分別是北,東北,東,東南,南,西南,西和西北方向.
如果在卷積核方向上存在着正的像素亮度變化率,則輸出圖像上的像素變量.變化率越大,則圖像越亮.由於卷積核中所有卷積系數至和為0,因此,圖像中基本不變的區域(空域頻率較低的區域)的結果像素值很小,即這些部分經處理后將變黑.
Krisch邊緣檢測算子:
Nevitia算子:
拉普拉斯算子:
Laplace邊緣檢測算子是一種二階導數算子,它具有各向同性的性質,即其對邊緣的檢測與邊緣的方向無關.而且Laplace算子比前述的算子計算量要小,因為它只需要一個模板,因而不必綜合各個模板的值,所以比較省事.計算數字圖像的拉普拉斯值也是借助各種模板實現.這里對模板的基本要求是對應中心像素的系數應是正的,對應中心像素臨近的系數應是負的,且所有系數的和應該是0,這樣就不會產生灰度偏移.
綜合正交算子:
邊緣的存在是圖像中灰度值不連續的一般表現,按照這個觀點,圖像中的孤立點和直線也可以看成邊緣.直線段可看作是由兩個相鄰的邊緣組成(相當於脈沖邊緣),所以也可以很方便地用特殊設計的正交模板來檢測.綜合正交模板就是這樣一個具有特殊功能的算子.
邊界閉合:
當圖像中有噪聲時,用各種邊緣算子檢測到的邊緣像素常常是孤立的或分小段連續的.也就是說,在檢測得到的邊緣圖中,有些是真正的邊緣像素,有些實際上是噪聲點.
為將圖像中不同的區域分開,需要將邊緣像素連接起來組成區域的封閉邊界,既要對檢測到的圖像的邊緣進行邊界閉合.邊界閉合的方法分為並行和串行兩種.
要對圖像的邊緣像素點進行邊界閉合,前提是這些邊界像素點要有共同點,就像兩個人要想在一起,就要有共同語言一樣.邊緣像素連接的基礎即使他們的梯度之間有一定的相似性.