圖像處理筆記(六):灰度變換與空間濾波


灰度變換與空間濾波

空間域: 指圖像平面本身,這類圖像處理方法直接以圖像中的像素操作為基礎。操作分為灰度變換和空間濾波。
灰度變換: 在圖像的單個像素上操作,以對比度和閾值處理為主要目的。
空間濾波: 設計性能改善的操作,例如通過圖像中每一個像素的鄰域處理來銳化圖像。
灰度越大顏色越白,0是黑色,255是白色。

截圖來源於《數字圖像處理》岡薩雷斯

基本的灰度變換函數

  1. 圖像反轉
    灰度級范圍在[0, L-1]的一幅圖像的反轉圖像:s = L - 1 - r,
    特別適用於增強嵌入在一幅圖像的按區域中的白色或灰色細節,特別是黑色面積占主導地位時。
read_image(Image, 'frequency')
* 圖像反轉
invert_image(Image, ImageInvert)
  1. 對數變換
    s = clog(1 + r) c是常數,\(r\geq 0\)
    該變換將輸入中范圍較窄的低灰度值映射為輸出中較寬范圍的灰度值,將輸入中范圍較大的高灰度值映射為輸出較窄的灰度值。
    使用這種類型的變換來擴展圖像中的暗像素的值,同時壓縮更高灰度級的值。
    反對數變換相反。

  2. 冪律(伽馬)變換
    \(s = cr^{\gamma}\)

    從圖中可以看到,\(\gamma <1\)時,將較窄范圍內的較暗的輸入值映射為較寬范圍的輸出值,暗區變小,亮區變大;
    \(\gamma > 1\)時,將較寬范圍內較暗的輸入值映射到了較窄范圍的輸出值,暗區變大,亮區變小。

由於用於圖像獲取,打印和顯示的各種設備根據冪律來產生相應,用於校正這些冪律相應的處理稱為伽馬校正。
例如圖像顯示設備的響應是一個指數為2.5的冪函數,會導致顯示出來的圖像比實際的暗,這種情況下,在圖像進入到輸出設備之前,做一個指數為1/2.5的伽馬變換進行糾正。
注意:根據實際情況設置伽馬值可以用於各種圖像設備。

冪律變換還可以用來進行對比度增強。對於整體比較暗的圖像,選擇一個小於1的伽馬值,來擴展灰度級;對於整體比較亮的圖像,選擇一個大於1的伽馬值,來壓縮灰度值。

  1. 對比度拉伸
    不同灰度的數量不會發生改變,但是看上去對比度是增強了的。
    原圖:

灰度拉伸之后:

  1. 灰度級分層
    突出圖像中特定灰度范圍的亮度,用於增強特征。
    兩種方法:1. 將感興趣的區域和不感興趣的區域分別顯示為兩種灰度,如一個顯示為黑色,一個顯示為白色,生成了一張二值圖像;(閾值分割已經用過很多次了)
    2. 將感興趣的區域變亮或變暗,其他區域不變。

  2. 比特分割
    8比特圖像考慮為8幅1比特圖像構成,其實就是8次閾值分割。
    主要用於圖像復原,存儲4個高階比特平面將允許我們以可接受的細節來重建原圖像。

  3. 直方圖處理
    若一幅圖像的像素傾向於占據整個可能的灰度級並且均勻分布,則該圖像會有較高的對比對的外觀並展示灰色調的較大變化,最終效果將是一幅灰度細節豐富且動態范圍較大的圖像。
    歸一化的直方圖
    直方圖均衡
    這一節實在是太理論了。。。理論部分全部跳過。
    試了一下小結里面第7個算子,這個算子能夠增強對比度,應該就是用來做直方圖均衡的。
    這節中剩下部分全部跳過。

空間濾波基礎

相關和卷積
相關是濾波器位移的函數;
濾波器w與包含有全部的0和單個的1的函數相關,得到的結果是一個w的拷貝,但旋轉了\(180^{\circ}\)
離散沖激: 包含單個1而其余都是0的函數。一個函數與離散單位沖激,在該沖激位置產生這個函數的一個翻轉版本。
f w
00010000 12328
f是一個一維函數,w是濾波器,執行相關操作,需要將w的每一位從f上走過去,得出f和w的乘積和,當w的最后一位訪問f的第一位時,w的前幾位會沒有f來覆蓋,這時候就給f補0。
相關操作的結果是000823210000,一般喜歡使用與f大小相同的陣列,將結果裁剪一下,得到08232100。

卷積
機理與相關類似,只要將濾波器旋轉\(180^{\circ}\)
卷積的基本特性是某個函數與某個單位沖激卷積,得到一個在該沖激處的這個函數的拷貝。

相關還可以用於尋找圖像中的匹配。

本節中Halcon算子小結:

  1. invert_image(Image, ImageInvert):圖像反轉
  2. log_image(Image, LogImage, base):對圖像做底數為base的對數變換
  3. pow_image(Image, PowImage, Exponent):對圖像做伽馬為Exponent的冪律變換
  4. scale_image_max(Image, ImageScaleMax):將圖像的灰度值拉伸到0-255
  5. scale_image(Image, ImageScaled, Mult, Add):對圖像做線性變換:\(g^{'} = g * Mult + Add\)
  6. overpaint_region(Image, Region, GrayVal, Type):將圖像中的指定區域或邊界設置成指定的灰度值
  7. equ_histo_image(Image, ImageEquHisto):將圖像的直方圖線性化


免責聲明!

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



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