數字圖像處理學習筆記之二 灰度變換與空間濾波


綜述

對於圖像的處理有兩種思路,一種是對圖像本身的直接處理,即空間域處理;另一種是在頻率域進行處理。關於空域和頻域,可以參考《傅里葉變換——另一種世界觀》。在空間域的處理相對簡單,因此首先介紹的是空域處理法。空域中有兩種重要處理方法:灰度變換(或亮度變換)和空間濾波(或鄰域處理、空間卷積)。

空間域處理:灰度變換和空間濾波

g(x,y)=T[ f(x,y) ]

空域處理的思路可以由上式表達。f 即是原圖,T 是在點(x,y)指定鄰域上的圖像處理算子,g 是輸出圖像。當鄰域為1*1大小時,T 為灰度變換算子;鄰域大於1*1時,T 為空間濾波算子。

灰度變換可以考慮每一個像素的灰度(點處理),也可以考慮整體灰度后再處理一個個像素(直方圖處理)。空間濾波是每次考慮一塊像素,進行卷積操作。

進行灰度變換可以使用MATLAB工具箱函數,也可以自己編寫函數。首先介紹的是直接進行點處理的函數,這些函數來自MATLAB圖像處理工具箱。之后會介紹直方圖處理、空間濾波。

灰度變換函數(來自MATLAB工具箱)

  • 灰度映射: g = imadjust( f, [low_in high_in], [low_out high_out], gamma )
  • 動態范圍操作:對數變換和對比度拉伸變換。
  • 任意灰度的灰度變換:給定灰度變換的列向量,使用interp1查找並替換。

直方圖處理

直方圖反映了圖像像素灰度的分布情況。

  • 繪制直方圖:imhist(f, b)(f為圖像,b是灰度刻度), bar, stem, plot。
  • 直方圖均衡化:將輸入圖像的灰度級均勻分布於較寬范圍內,采用均衡化,使用histeq(f)函數實現。原理可以參考《直方圖均衡化》。
  • 直方圖匹配(規定化):很多時候均衡化並不能實現預期效果,因為均衡化不會對每一個輸入圖像區別對待,只是例行算法,將灰度級均勻分布而已。為了實現預期效果,采用直方圖規定化方法,將灰度級做指定。使用histeq(f, h)實現,h為規定的灰度級比例。
  • 對比度受限的自適應直方圖均衡(Contrast-Limited Adaptive Histogram Equalization):通過adapthisteq()函數實現。

空間濾波

空間濾波是在空域進行的濾波操作,有線性空間濾波和非線性空間濾波。線性空間濾波是對目標像素點的領域進行整體考慮,對窗口內的每一個元素乘以系數后求和,並作為目標像素點的響應。非線性空間濾波的思路與線性不同,其操作是非線性的,比如中值濾波、排序濾波等。

線性空間濾波常用imfilter和fspecial函數實現,非線性空間濾波常用nlfilter和colfilt函數實現。

平滑與銳化

空間濾波有很多應用場景,平滑和銳化是兩個典型的應用場景。平滑可以使用平滑模板對圖像進行線性空間濾波,也可以使用中值濾波對圖像進行非線性空間濾波。銳化可以使用銳化模板對圖像進行線性空間濾波。

平滑模板示例:
[ 0.1  0.1  0.1
0.1  0.2  0.1
0.1  0.1  0.1 ]

銳化模板示例:
[ 0    1    0
1  -4    1
0    1    0 ]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM