它的與衆不同之處在於,是透過光線看陰影還是透過陰影看亮度。 ----大衛·林賽
本章是在工作域的空間域技術g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g ( x , y ) = T [ f ( x , y ) ]
圖像增強使處理的圖像比原圖更適合特定的應用
空間濾波器(空間掩膜,核,模板,窗口) = 鄰域 + 預定義操作
鄰域size=[1,1]時稱 點處理技術
灰度變換(映射)
由於處理的是數字量,變換函數經常是表的形式
變換
原理
功能
圖像反轉
s = L − 1 − r s=L-1-r s = L − 1 − r
視覺上增強細節
對數變換
s = c log ( 1 + r ) s=c\log{(1+r)} s = c log ( 1 + r )
擴展暗像素對比度
指數(反對數變換)
c ( 2 r − 1 ) c(2^r-1) c ( 2 r − 1 )
擴展亮像素
冪律(伽馬)變換
s = c r γ s=cr^\gamma s = c r γ
顯示設備校正,對比度增強
分段線性變換(對比度拉伸)
上右圖
擴展圖像灰度級動態範圍
分段線性變換(灰度級分層)
增強AOI特徵
分段線性變換(比特平面分層)
高階比特麪包含主要數據 輸出{0,1}二值圖像
壓縮圖片
直方圖均衡(直方圖線性變換)
高對比度=灰度級寬+均勻分佈 ⇒ 對比度拉伸
灰度映射s = T ( r ) s=T(r) s = T ( r ) :
(a)T ( r ) 在 [ 0 , L − 1 ] 上 單 調 遞 增 T(r)在[0,L-1]上單調遞增 T ( r ) 在 [ 0 , L − 1 ] 上 單 調 遞 增
(b)T ( r ) ∈ [ 0 , L − 1 ] T(r)\in[0,L-1] T ( r ) ∈ [ 0 , L − 1 ]
反映射 r = T − 1 ( s ) r=T^{-1}(s) r = T − 1 ( s ) :
(a) ⇒ (a’)T ( r ) T(r) T ( r ) 在[ 0 , L − 1 ] [0,L-1] [ 0 , L − 1 ] 上嚴格單調遞增(保證一一映射)
∫ 0 s p s ( s ) d s = ∫ 0 r p s ( T ( r ) ) d T ( r ) d r d r = ∫ 0 r p r ( r ) d r \int_0^{s}p_s(s)ds=\int_0^{r}p_s(T(r))\frac{dT(r)}{dr}dr=\int_0^r p_r(r)dr ∫ 0 s p s ( s ) d s = ∫ 0 r p s ( T ( r ) ) d r d T ( r ) d r = ∫ 0 r p r ( r ) d r 同 時 對 r 求 導 得 p s ( s ) ⇓ 同時對r求導得 p_s(s)\Downarrow 同 時 對 r 求 導 得 p s ( s ) ⇓ p s ( s ) = p r ( r ) d r d s
\color{red}p_s(s)=p_r(r)\frac{dr}{ds} p s ( s ) = p r ( r ) d s d r 幾何意義:ds對應的dr越大,p s ( s ) p_s(s) p s ( s ) 就越大,大小由變換函數決定
eg:積累分佈函數(CDF,comulative distribution function),p r ( r ) p_r(r) p r ( r ) 的區間積分面積不變,p r ( r ) p_r(r) p r ( r ) 越大T ( r ) T(r) T ( r ) 拉的越開,自動化均衡 s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d w = 離 散 化 ⇒ s k = L − 1 M N ∑ j = 0 k n j p s ( s ) = p r ( r ) ∣ d r d s ∣ = p r ( r ) [ d T ( r ) d r ] − 1 = 1 L − 1
s=T(r)=(L-1)\int_0^rp_r(w)dw=離散化\Rightarrow s_k=\frac{L-1}{MN}\sum^k\limits_{j=0}n_j\\
p_s(s)=p_r(r)\begin{vmatrix}\frac{dr}{ds}\end{vmatrix}=p_r(r)[\frac{dT(r)}{dr}]^{-1}=\frac{1}{L-1} s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d w = 離 散 化 ⇒ s k = M N L − 1 j = 0 ∑ k n j p s ( s ) = p r ( r ) ∣ ∣ d s d r ∣ ∣ = p r ( r ) [ d r d T ( r ) ] − 1 = L − 1 1
直方圖匹配(規定化)
產生具有定形狀的直方圖進行增強
1.均衡輸入圖像 :s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d w s=T(r)=(L-1)\int_0^rp_r(w)dw s = T ( r ) = ( L − 1 ) ∫ 0 r p r ( w ) d w
2.均衡輸出圖像 :z = G ( r ) = ( L − 1 ) ∫ 0 z p z ( t ) d t z=G(r)=(L-1)\int_0^zp_z(t)dt z = G ( r ) = ( L − 1 ) ∫ 0 z p z ( t ) d t 離散情況下建立映射表
3.均衡結果相等:G ( z ) = T ( r ) G(z)=T(r) G ( z ) = T ( r ) 離散情況下建立映射表
4.反變換映射: z = G − 1 ( s ) z=G^{-1}(s) z = G − 1 ( s ) 離散情況下查映射表,G − 1 ( s ) G^{-1}(s) G − 1 ( s ) 有多個z時取最小的z(更亮)
離散化時只能得到近似結果,但大大簡化了求解過程
G − 1 G^{-1} G − 1 意味着G ( z ) G(z) G ( z ) 必須嚴格單調,p z ( z i ) p_z(z_i) p z ( z i ) 不能爲0,在離散情況下查映射表可以解決
局部直方圖處理
局部處理⇒隱藏細節 ,以上全局變換並不保證局部增強,細節被忽略,取n*n鄰域內進行均衡或歸一化得到被掩蓋的細節
二階矩 即灰度方差 ,概率分母取 (MN-1) 參考無偏差估計 ,這裏取 MN μ 2 ( r ) = σ 2 = ∑ i = 0 L − 1 [ r i − ∑ i = 0 L − 1 r i p ( r i ) ] 2 p ( r i ) \mu_2(r)=\sigma^2=\sum\limits_{i=0}^{L-1}[r_i-\sum\limits_{i=0}^{L-1}r_ip(r_i)]^2p(r_i) μ 2 ( r ) = σ 2 = i = 0 ∑ L − 1 [ r i − i = 0 ∑ L − 1 r i p ( r i ) ] 2 p ( r i ) 均值和方差總是有用的,尤其是在局部增強時,靈活!
eg:增強暗背景中的細節
1.根據灰度均值 m s x y ≤ k × m G m_{s_{xy}}\leq k\times m_G m s x y ≤ k × m G 或 灰度方差 k 1 × σ G ≤ k 2 × σ s x y ≤ k 2 × σ G k_1\times\sigma_G\leq k_2\times \sigma_{s_{xy}}\leq k_2 \times\sigma_G k 1 × σ G ≤ k 2 × σ s x y ≤ k 2 × σ G 選爲待處理點,k 1 k_1 k 1 確定低閾值避免“增強”恆定區噪聲
2.選定像素增強g ( x , y ) = E ∙ f ( x , y ) g(x,y)=E \bullet f(x,y) g ( x , y ) = E ∙ f ( x , y ) ,E E E 要調試,不能破壞視覺平衡
3.掃描,模板不宜過大,避免過大的計算量
空間濾波
函數和離散單位衝擊相關=函數翻轉180°
相關(correlation):正向乘積求和
g ( x , y ) = ∑ s = − a a ∑ t = − b b w ( s , t ) f ( x + s , y + t ) = w ( x , y ) ⋆ f ( x , y ) g(x,y)=\sum\limits_{s=-a}^a\sum\limits_{t=-b}^bw(s,t)f(x+s,y+t)=w(x,y) \star f(x,y) g ( x , y ) = s = − a ∑ a t = − b ∑ b w ( s , t ) f ( x + s , y + t ) = w ( x , y ) ⋆ f ( x , y )
卷積(convolution) :提前翻轉180°乘積求和
g ( x , y ) = ∑ s = − a a ∑ t = − b b w ( s , t ) f ( x − s , y − t ) = w ( x , y ) ⭐ f ( x , y ) g(x,y)=\sum\limits_{s=-a}^a\sum\limits_{t=-b}^bw(s,t)f(x\color{red}-\color{black}s,y\color{red}-\color{black}t)=w(x,y) ⭐ f(x,y) g ( x , y ) = s = − a ∑ a t = − b ∑ b w ( s , t ) f ( x − s , y − t ) = w ( x , y ) ⭐ f ( x , y )
卷積濾波器、卷積模板、卷積核等模板與圖像滑動乘積求和的術語並不一定真的卷積
n × n n \times n n × n 大小的濾波器 = n 2 n^2 n 2 維向量w ⃗ \vec w w ,每個點和其鄰域 = n 2 n^2 n 2 維向量z ⃗ \vec z z ,則相關或卷積矩陣形式:R = w 1 z 1 + . . . w n z n = ∑ k = 1 n 2 w k z k = w ⃗ T z ⃗ R=w_1z_1+...w_nz_n=\sum\limits_{k=1}^{n^2}w_kz_k=\vec w^T\vec z R = w 1 z 1 + . . . w n z n = k = 1 ∑ n 2 w k z k = w T z
如平滑濾波器R = 1 n 2 ∑ i = 1 n 2 z i R=\frac{1}{n^2}\sum\limits_{i=1}^{n^2}z_i R = n 2 1 i = 1 ∑ n 2 z i ,高斯濾波器R = ∑ a = − n n ∑ b = − n n e − a 2 + b 2 2 σ 2 f ( x + a , y + b ) R=\sum\limits_{a=-n}^n\sum\limits_{b=-n}^ne^{-\frac{a^2+b^2}{2\sigma^2}}f(x+a,y+b) R = a = − n ∑ n b = − n ∑ n e − 2 σ 2 a 2 + b 2 f ( x + a , y + b )
平滑空間濾波器
用法:模糊處理(橋接線段,去除細節),降低噪聲
平滑線性濾波器(均值濾波器) g ( x , y ) = ∑ s = − a a ∑ t = − b b w ( s , t ) f ( x + s , y + t ) ∑ s = − a a ∑ t = − b b w ( s , t ) g(x,y)=\frac{\sum\limits_{s=-a}^{a}\sum\limits_{t=-b}^{b}w(s,t)f(x+s,y+t)}{\sum\limits_{s=-a}^{a}\sum\limits_{t=-b}^{b}w(s,t)} g ( x , y ) = s = − a ∑ a t = − b ∑ b w ( s , t ) s = − a ∑ a t = − b ∑ b w ( s , t ) f ( x + s , y + t ) 其中1 ∑ s = − a a ∑ t = − b b w ( s , t ) \frac{1}{\sum\limits_{s=-a}^{a}\sum\limits_{t=-b}^{b}w(s,t)} s = − a ∑ a t = − b ∑ b w ( s , t ) 1 稱作歸一化常數,w ( x , y ) w(x,y) w ( x , y ) 全部相等時稱爲盒狀濾波器 。
模板的大小取決於需要 平滑 或 融入背景 的對象尺寸決定
eg 提取目標對象的粗略圖步驟:均值濾波 ⇒ 二值化(閾值=最高亮度的x%)
各向異性擴散平滑
較高斯模糊保留了邊緣:I t + 1 ( x , y ) = I t ( x , y ) + λ ( c N ∇ N I t + c S ∇ S I t + c W ∇ W I t + c E ∇ E I t ) I_{t+1}(x,y)=I_t(x,y)+\lambda(c_N\nabla_N I_t+c_S\nabla_S I_t+c_W\nabla_W I_t+c_E\nabla_E I_t) I t + 1 ( x , y ) = I t ( x , y ) + λ ( c N ∇ N I t + c S ∇ S I t + c W ∇ W I t + c E ∇ E I t ) 其中拉普拉斯算子是對各方向的導數:北 向 導 數 ∇ N = I t ( x , y − 1 ) − I t ( x , y ) 南 向 導 數 ∇ S = I t ( x , y + 1 ) − I t ( x , y ) 西 向 導 數 ∇ W = I t ( x − 1 , y ) − I t ( x , y ) 東 向 導 數 ∇ E = I t ( x + 1 , y ) − I t ( x , y ) 北向導數\nabla_N=I_t(x,y-1)-I_t(x,y)\\
南向導數\nabla_S=I_t(x,y+1)-I_t(x,y)\\
西向導數\nabla_W=I_t(x-1,y)-I_t(x,y)\\
東向導數\nabla_E=I_t(x+1,y)-I_t(x,y) 北 向 導 數 ∇ N = I t ( x , y − 1 ) − I t ( x , y ) 南 向 導 數 ∇ S = I t ( x , y + 1 ) − I t ( x , y ) 西 向 導 數 ∇ W = I t ( x − 1 , y ) − I t ( x , y ) 東 向 導 數 ∇ E = I t ( x + 1 , y ) − I t ( x , y ) 各向導數的權值,變化越大的方向權值越小 :c N = e − ∇ N 2 k 2 c S = e − ∇ S 2 k 2 c W = e − ∇ W 2 k 2 c E = e − ∇ E 2 k 2 c_N=e^{-\frac{\nabla_N^2}{k^2}}\\c_S=e^{-\frac{\nabla_S^2}{k^2}}\\c_W=e^{-\frac{\nabla_W^2}{k^2}}\\c_E=e^{-\frac{\nabla_E^2}{k^2}} c N = e − k 2 ∇ N 2 c S = e − k 2 ∇ S 2 c W = e − k 2 ∇ W 2 c E = e − k 2 ∇ E 2 重複迭代指定的T次,後得到的結果能夠保留倒數較大的邊緣,而只模糊區域內的部分
統計排序(非線性)濾波器
統計方法
效果
中值濾波
去除較其鄰域更亮或更暗,小於m 2 2 \frac{m^2}{2} 2 m 2 尺寸的區域 對脈衝噪聲(椒鹽噪聲:疊加的黑白點 )十分有效,模糊程度低
最大值濾波
搜尋圖像中的最亮點
最小值濾波
搜尋圖像中的最暗點
銳化空間濾波器
突出灰度的過渡部分,微分算子的響應強度 與 當前點突變程度 成正比(增強邊緣和噪聲 )
一 階 微 分 { 灰 度 恆 定 區 域 = 0 灰 度 變 化 處 非 0 變 化 中 非 0 ∂ f x = f ( x + 1 ) − f ( x ) 二 階 微 分 { 灰 度 恆 定 區 域 = 0 灰 度 變 化 起 點 處 非 0 等 差 變 化 中 = 0 ∂ 2 f x 2 = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) 一階微分\begin{cases}
灰度恆定區域=0&\\
灰度變化處非0&\\
變化中非0
\end{cases}
\frac{\partial f}{x}=f(x+1)-f(x)\\
二階微分
\begin{cases}
灰度恆定區域=0&\\
灰度變化\color{red}起點\color{black}處非0&\\
\color{red}等差變化\color{black}中=0
\end{cases}
\frac{\partial^2 f}{x^2}=f(x+1)+f(x-1)-2f(x) 一 階 微 分 ⎩ ⎪ ⎨ ⎪ ⎧ 灰 度 恆 定 區 域 = 0 灰 度 變 化 處 非 0 變 化 中 非 0 x ∂ f = f ( x + 1 ) − f ( x ) 二 階 微 分 ⎩ ⎪ ⎨ ⎪ ⎧ 灰 度 恆 定 區 域 = 0 灰 度 變 化 起 點 處 非 0 等 差 變 化 中 = 0 x 2 ∂ 2 f = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x )
零交叉點(Zero-crossing)對邊緣定位十分有效,二階微分更適合銳化(增強細節)
各向同性二階微分(拉普拉斯算子)
響應與圖像的突變方向無關,旋轉不變,如拉普拉斯算子:∇ 2 f = ∂ 2 f ∂ x 2 + ∂ 2 f ∂ y 2 \nabla^2f=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2f}{\partial y^2} ∇ 2 f = ∂ x 2 ∂ 2 f + ∂ y 2 ∂ 2 f 離散形式:∇ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \nabla^2f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y) ∇ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) 濾波後的圖像通常與其他圖像相加減,注意符號!!
參考上圖f ( 2 ) > 0 , f ′ ′ ( 2 ) < 0 f(2)>0,f''(2)<0 f ( 2 ) > 0 , f ′ ′ ( 2 ) < 0
爲了使+ + + 值更加+ + + ,− - − 更− - − ,銳化形式爲 g ( 2 ) = f ( 2 ) − f ′ ′ ( 2 ) g(2)=f(2)-f''(2) g ( 2 ) = f ( 2 ) − f ′ ′ ( 2 )
因此銳化操作意義是邊界上強的更強,弱的更弱 :g ( x , y ) = f ( x , y ) − ∇ ′ ′ f ( x , y ) g(x,y)=f(x,y)-\nabla''f(x,y) g ( x , y ) = f ( x , y ) − ∇ ′ ′ f ( x , y ) 拉普拉斯運算 ⇒ 拉普拉斯結果f − f m i n f-f_{min} f − f m i n 負值矯正 ⇒ 灰度範圍拉伸“滿”[ 0 , L − 1 ] [0,L-1] [ 0 , L − 1 ] ⇒ 標定後效果
⇓ \Downarrow ⇓
負值賦0 ⇒ 原圖 + 拉普拉斯結果 ⇒ 完成銳化(如下)
unsharp masking 和 highboost filtering
模糊原始圖像 ⇒ 模板=原圖像-模糊圖像 ⇒ 最終結果=原圖像+模板g ( x , y ) = f ( x , y ) + k ∗ g m a s k ( x , y ) = f ( x , y ) + k ∗ [ f ( x , y ) − f ‾ ( x , y ) ] g(x,y)=f(x,y)+k*g_{mask}(x,y)=f(x,y)+k*[f(x,y)-\overline f(x,y)] g ( x , y ) = f ( x , y ) + k ∗ g m a s k ( x , y ) = f ( x , y ) + k ∗ [ f ( x , y ) − f ( x , y ) ] k=1時稱爲 unsharp masking
k>1時稱爲 highboost filtering
這裏我並不想將"unsharp masking"和"highboost filtering"翻譯爲“非銳化屏蔽"和”高提升濾波“,感覺並沒有翻譯出它們的“本意”。我認爲,unsharp是說沒有像先前那樣求一二階導,而是靠模糊圖像這樣的“反銳化操作”得到銳化操作所需要的掩膜,從而“減出”邊緣,但本質還是對原圖像進行了“銳化”(或者highboost filtering“加強銳化”) ,參見原文:
“Our objective is to sharpen this image using unsharp masking and highboost filtering.” -Example 3.21
k過大會導致<0,在圖像上表現爲暗暈輪,產生不好的結果
最終結果對模糊所用的低通濾波器要求並不高 ,只要主要特徵別模糊到看不清就行
一階微分(梯度)非線性圖像銳化
梯度,既給出了變化最快的方向,也給出了變化的賦值,計算線性∇ f ≡ g r a n d ( f ) ≡ [ g x g y ] ≡ [ ∂ f ∂ x ∂ f ∂ y ] \nabla f \equiv grand(f) \equiv \begin{bmatrix}g_x\\g_y\end{bmatrix} \equiv \begin{bmatrix} \frac{\partial f}{\partial x}\\\frac{\partial f}{\partial y}\end{bmatrix} ∇ f ≡ g r a n d ( f ) ≡ [ g x g y ] ≡ [ ∂ x ∂ f ∂ y ∂ f ] 這裏先關注由幅值組成的梯度圖像 M ( x , y ) = m a g ( ∇ f ) = g x 2 + g y 2 M(x,y)=mag(\nabla f)=\sqrt{g_x^2+g_y^2} M ( x , y ) = m a g ( ∇ f ) = g x 2 + g y 2
由於是幾何平均數,所以非線性,幅值旋轉不變
計算中使用絕對值近似也是可以的:M ( x , y ) ≈ ∣ g x ∣ + ∣ g y ∣ M(x,y)\approx |g_x|+|g_y| M ( x , y ) ≈ ∣ g x ∣ + ∣ g y ∣
非線性,當且僅當n × 90 ° n \times 90° n × 9 0 ° 增量時是各向同性的
Roberts[1965]提出羅伯特交叉梯度算子 ,形式如下:
M ( x , y ) = [ f ( x + 1 , y + 1 ) − f ( x , y ) ] 2 + [ f ( x , y + 1 ) − f ( x + 1 , y ) ] 2 M(x,y)=\sqrt{[f(x+1,y+1)-f(x,y)]^2+[f(x,y+1)-f(x+1,y)]^2} M ( x , y ) = [ f ( x + 1 , y + 1 ) − f ( x , y ) ] 2 + [ f ( x , y + 1 ) − f ( x + 1 , y ) ] 2 或 M ( x , y ) ≈ ∣ f ( x + 1 , y + 1 ) − f ( x , y ) ∣ + ∣ f ( x , y + 1 ) − f ( x + 1 , y ) ∣ M(x,y)\approx|f(x+1,y+1)-f(x,y)|+|f(x,y+1)-f(x+1,y)| M ( x , y ) ≈ ∣ f ( x + 1 , y + 1 ) − f ( x , y ) ∣ + ∣ f ( x , y + 1 ) − f ( x + 1 , y ) ∣
3*3大小的模板各項權值如圖,稱爲soble算子 ,總權值=0符合離散微分定義灰度恆定區=0
低通,高通,帶阻和帶通濾波器
混合空間增強法
動態窄 高噪聲 很難直接增強,方法:
Laplacian正比於變化的頻率和幅度,突出(較小的)細節(和噪聲) ⇒
梯度突出邊緣(邊緣通常較大,噪聲和小細節較小,響應低) ⇒
梯度平滑去(掉平緩區域內)噪聲,保留邊緣 ⇒
梯度∗ * ∗ Laplacian = 掩蔽 ⇒
增大動態範圍(冪律變換、對數變換等)
模糊技術的應用
模糊集合在解決那些以不精確概描述的問題時,提供了一個基於人類知識的框架