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

灰度變換與空間濾波

空間域: 指圖像平面自己,這類圖像處理方法直接以圖像中的像素操做爲基礎。操做分爲灰度變換和空間濾波。
灰度變換: 在圖像的單個像素上操做,以對比度和閾值處理爲主要目的。
空間濾波: 設計性能改善的操做,例如經過圖像中每個像素的鄰域處理來銳化圖像。
灰度越大顏色越白,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\)
    該變換將輸入中範圍較窄的低灰度值映射爲輸出中較寬範圍的灰度值,將輸入中範圍較大的高灰度值映射爲輸出較窄的灰度值。
    使用這種類型的變換來擴展圖像中的暗像素的值,同時壓縮更高灰度級的值。
    反對數變換相反。spa

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

    從圖中能夠看到,\(\gamma <1\)時,將較窄範圍內的較暗的輸入值映射爲較寬範圍的輸出值,暗區變小,亮區變大;
    \(\gamma > 1\)時,將較寬範圍內較暗的輸入值映射到了較窄範圍的輸出值,暗區變大,亮區變小。設計

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

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

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

灰度拉伸以後:
ci

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

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

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

空間濾波基礎

相關和卷積
相關是濾波器位移的函數;
濾波器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):將圖像的直方圖線性化
相關文章
相關標籤/搜索