(僅是個人學習摘抄)
圖像增強的主要目的是處理圖像,以便處理結果圖像比原圖像更適合特定的應用。特定意味着增強方法針對特定的問題,不同的問題適合采用不同的增強方法。
沒有一個圖像增強的統一理論,如何評價圖像增強的結果好壞也沒有統一的規律。主觀標准:人;客觀標准:結果。
圖像增強的方法分為兩大類:空間域方法和頻域方法。“空間域”是指圖像平面自身,這類方法是以對圖像的像素直接處理為基礎的。“頻域”處理技術是以修改圖像的傅氏變換為基礎的。
3.1 背景知識
空間域增強是指增強構成圖像的像素,可由下式定義:
g(x,y)=T[f(x,y)]
其中 f(x,y) 是輸入圖像,g(x,y) 是輸出圖像,T 是對 f 的一種操作,其定義在(x,y)的鄰域。
定義一個點(x,y)鄰域的主要方法是利用中心在(x,y)點的正方形或矩形子圖像。子圖像的中心從一個像素向另一個像素移動。T 操作應用到每一個(x,y)位置得到該點的輸出 g。
1X1的鄰域 T(r) 產生兩級(二值)圖像,閾值函數
更大的鄰域會有更多的靈活性,一般的方法是利用點(x,y)事先定義的鄰域里的一個 f 值的函數來決定 g 在(x,y)的值,主要是利用所謂的模板(又稱濾波器、核、掩膜)
模板是一個小的(3X3)二維陣列,模板的系數值決定了處理的性質,如圖像尖銳化等。以這種方法為基礎的增強技術通常是指模板處理或濾波。
3.2 基本灰度變換
灰度級變換函數:s = T(r)
三種基本類型:線性的(正比或反比)、對數的(對數和反對數)、冪次的(n 次冪和 n 次方根變換)
1、圖像反轉
s = L - 1 - r
反轉變換:適於處理增強嵌入於圖像暗色區域的白色或灰色細節,特別是當黑色面積占主導地位時。灰度值范圍是 [0,L-1]。
實質是把灰度圖像中,明暗兩種像素進行互換,亮變暗,暗變亮。
Ex:Po = 256 - 1 - Pi 像素值范圍是0~255,所以有 L = 256
相似作用效果:灰度值映射函數 imadjust
g = imadjust(f,[low-in,high-in],[low-out,high-out],gamma);
f:輸入圖像 g:輸出圖像
gamma:映射函數曲線的特征參數。大於 1,映射被加權至高的輸出值;小於 1,被加權至低的輸出值;等於 1 為線性映射,默認值是 1。
g = imadjust(f,[0,1],[1,0]); %明暗變換,同反轉變換;但灰度值映射形式更加豐富
2、對數變換
s = c log(1+r)
對數變換:使一窄帶低灰度輸入圖像映射為一寬帶輸出值。可以用於擴展被壓縮的高值圖像中的暗像素。
擴展圖像中暗像素的值,同時壓縮更高灰度級的值。
3、冪次變換
s = crγ
冪次變換:冪次曲線中的 γ 部分值把輸入窄帶暗值映射到寬帶輸出值。相反,輸出高值時也成立。
伽馬校正:可使圖像對比度增強,擴展灰度級(變量,往灰度值 1 擴展,圖像整體變白);可進行灰度值壓縮(往 0 壓縮,圖像整體變黑)
γ > 1,壓縮灰度級,變亮變白;γ < 1,擴展灰度級,變暗變黑
伽馬校正:亮度調整——加亮、減暗圖像
假設斜線是原始圖像的亮度,左圖中變化,使圖像變亮;右圖變化,使圖像變暗。
4、對比拉伸
非線性變換函數:其形式可以是任意組合,有些重要的變換可以應用分段線性函數描述。
(a) 變換函數的形式
(b) 低對比度圖像
(c) 對比度拉伸的結果
(d) 門限化結果
灰度切割:
(a) 加亮[A,B]范圍,其他灰度減小為一恆定值
(b) 加亮[A,B]范圍,其他灰度級不變
(c) 原圖像
(d) 使用(a)變換的結果
3.3 直方圖處理
1、灰度級直方圖
灰度級 [0,L-1] 范圍的數字圖像的直方圖是離散函數:
h(rk)=nk
其中 rk 是第 k 級灰度,nk 是圖像中灰度級為 rk 的像素個數。進行歸一化,則 P(rk)=nk/n,n 為圖像中像素的總數。P(rk) 給出了灰度級為 rk 發生的概率估計值。
2、直方圖均衡化
s = T(r) 0≤r≤1
滿足如下條件:(1)T(r) 在區間 0≤r≤1 中為單值且單調遞增(2)當 0≤r≤1 時,0≤T(r)≤1
一幅圖像的灰度級可視為 [0,1] 的隨機變量,令 Pr(r) 和 Ps(s) 分別表示隨機變量 r 和 s 的概率密度函數。
若 Pr(s) 和 T(r) 已知,則有如下結果:
Ps(s) = Pr(r)|dr/ds|
s 的概率密度函數由輸入函數的概率密度函數和多選擇的變換函數決定。
累積分布函數(CDF)
滿足如下條件:
(1)T(r) 在區間 0≤r≤1 中為單值且單調遞增
(2)當 0≤r≤1 時,0≤T(r)≤1
對於離散值,處理其概率與和
灰度級 rk 出現的概率為:Pr(rk) = nk/n k = 0,1,...,L-1
則變換函數的離散形式為:
求得 sk 的值后,還需將其取整擴展變換回 [0,L] 區間
3.4 用算數/邏輯操作增強
圖像中的算數/邏輯操作主要以像素對像素為基礎在兩幅或多幅圖像間進行。
邏輯:與、非、或
算數:加、減、乘、除
1、圖像的減法處理:
兩幅圖像 f(x,y) = f(x,y) - h(x,y)
計算兩幅圖像對應像素點的差而得出的。
2、兩幅圖像的相除看成用一幅的取反圖像與另一幅圖像相乘。
圖像的乘法不僅可以用於對二進碼模板進行處理,而且可以直接用於灰度處理。
3、圖像平均處理:
多幅圖像相加,取平均值,從而減少噪聲。
則有:
當 K 增加時,在各個(x,y)位置上像素值的噪聲變化率將減少,意味着隨着在圖像均值處理中噪聲圖像使用量的增加,越來越趨近於 f(x,y)
3.5 空間濾波基礎
圖像的平滑、銳化都是利用掩膜操作來完成的。通過掩膜操作實現一種鄰域運算,待處理像素點的結果由鄰域的圖像像素以及相應的與鄰域有相同維數的子圖像得到,這些子圖像被稱為濾波器、掩膜、核、模板或窗口。
掩膜運算的數學含義是卷積(或互相關)運算。
點(x,y)處的響應 R 為:
卷積運算對應位置相乘后累加。
卷積運算示意圖:
一般來說,在 M X N 的圖像 f 上,用 m x n 大小的濾波器掩膜進行線性濾波,由下式給出:
其中 a = (m-1)/2 且 b = (n-1)/2,處理的掩膜長與寬都是奇數。
空域濾波器:
使用空域濾波器模板進行的圖像處理,被稱為空域濾波。模板本身被稱為空域濾波器。
分類:數學形態分類
(1)線性濾波器
線性濾波器是線性系統和頻域濾波概念在空域的自然延伸。其特征是結果像素值的計算由下列公式定義:
主要線性空域濾波器:
① 平滑濾波器
鈍化圖像、去除噪音
② 銳化濾波器
邊緣增強、邊緣提取
③ 帶通濾波器
刪除特定頻率、增強中很少用
(2)非線性濾波器
使用模板進行結果像素值的計算,結果值直接取決於像素鄰域的值,而不使用乘積和的計算。
R = w1z1 + w2z2 + ... +wnzn
主要非線性濾波器:
① 中值濾波
鈍化圖像、去除噪音
R = mid{zk | k = 1,2,...,9}
② 最大值濾波
尋找最亮點
R = max{zk | k = 1,2,...,9}
③ 最小值濾波
尋找最暗點
R = min{zk | k = 1,2,...,9}
3.6 銳化空間濾波器
銳化處理的目的是突出圖像中的細節或者增強被模糊的細節。
銳化處理可用空間微分來完成。微分算子的響應強度與圖像在該點的突變程度有關。圖像微分增強了邊緣和其他突變(如噪聲)而消弱了灰度變化緩慢的區域。
我們最感興趣的微分性質是恆定灰度區域(平坦段)、突變的開頭與結尾(階梯與斜坡突變)以及沿着灰度級斜坡處的特性。
對於一階微分必須保證:
(1)平坦段微分值為零
(2)在灰度階梯或斜坡的起點處微分值為零
(3)沿着斜坡面微分值為零
對於二階微分必須保證:
(1)在平坦區微分值為零
(2)在灰度階梯或斜坡的起始點處微分值非零
(3)沿着斜坡面微分值為零
由於我們處理的是數字量,最大灰度級的變化是有限的,變換發生的最短距離是在兩個相鄰像素之間。
用差值定義一元函數 f(x) 一階微分:
用差分定義一元函數 f(x) 的二階微分:
一階微分和二階微分的區別:
(1)一階微分處理通常會產生較寬的邊緣
(2)二階微分處理對細節有較強的響應,如細線和孤立點
(3)一階微分處理一般對灰度階梯有較強的響應
(4)二階微分處理對灰度階梯變化產生雙響應
(5)二階微分在圖像中灰度值變化相似時,對線的響應要比對階梯強,且點比線強
大多數應用中,對圖像增強來說,二階微分處理比一階微分好,因為形成細節的能力強,而一階微分處理主要用於提取邊緣。
二階微分的圖像增強——拉普拉斯算子
二元圖像函數 f(x,y) 的拉普拉斯變換定義為:
最簡單的各向同性微分算子,並且是一個線性操作。
離散方式:
x 方向
y 方向
故二維拉普拉斯數字實現由以上兩個分量相加:
擴展方式:
拉普拉斯微分算子強調圖像中灰度的突變,弱化灰度慢變化的區域。這將產生一幅把淺灰色邊線、突變點疊加到暗背景中的圖像。
將原始圖像和拉普拉斯圖像疊加在一起的簡單方法可以保護拉普拉斯銳化處理的效果,同時又能復原背景信息。因此拉普拉斯算子用於圖像增強的基本方法如下:
實際應用中,疊加過程可以簡化為:
反銳化掩蔽和高提升濾波處理
長期以來在出版業中使用的圖像銳化是將圖像模糊形式從原始圖像中去除,通過反銳化掩蔽來完成,反銳化掩蔽的基本算法如下:
反銳化掩蔽的進一步普遍形式稱為高提升濾波,定義如下:
高提升濾波掩膜:
梯度法——基於一階微分的圖像增強
實際運算時用絕對值代替平方根運算:
Robert 提出的交叉梯度算子 —— Sobel 算子
Gx = (z9 - z5) Gy = (z8 - z6)
3X3 的掩膜:Sobel 算子
梯度處理經常用於工業檢測、輔助人工檢測缺陷,或者是更為通用的自動檢測的預處理。