三、圖像直方圖變換和幾何變換

  • 直方圖變換
  • 灰度變換
  • 點運算
  • 幾何變換

直方圖變換

1.灰度直方圖

灰度直方圖:數字圖像中每一灰度級像素出現的頻次(該灰度級的像素數目)(也可以標準化到概率的表示)

灰度直方圖性質

  • 無空間信息。(一種值的統計,丟棄位置信息)
  • 直方圖與圖像一對多的關系
  • 可疊加性(全圖=子圖疊加)

直方圖反映圖像的清晰程度,直方圖均勻分布時,圖像最清晰。

判定一幅圖像是否清晰,查看是否合理的利用了全部允許的灰度級。

一幅圖像應該盡可能利用全部的灰度級

2.直方圖均衡化

直方圖修正:通過灰度映射函數$G_{new} = T(G_{old})$,將原灰度直方圖改造成所希望的直方圖。

直方圖均衡化是一種最常用的直方圖修正,把直方圖分布改造成均勻直方圖分布,均衡化后,圖像直方圖是平直的,即各灰度級出現頻數相同,圖像看起來更清晰了。

直方圖均衡化灰度映射函數

  • 連續灰度級情況:概率密度函數為P(r),0<= r <= 1,代表灰度級。

    變換函數s=T(r),使直方圖變平直。

    要求:

    • [0,1]范圍內,T(r)是單增函數,且T的值域為[0,1]
    • 反變換函數為單減函數,值域也為[0,1]。

    變換示意圖:圖1
    圖片.png

變換函數T:圖2
圖片.png
  • 數字圖像的直方圖均衡化:設總像素n個,分L個灰度級,第k個灰度級出現的概率P(Rk)=Nk/N,Nk表示第k個灰度級出現的頻數。

    變換函數:連續變換函數離散化,概率求和。公式如下,圖3
    圖片.png

數字圖像灰度直方圖均衡化步驟(8個灰度級為例),如圖4:
圖片.png

Matlab處理

  • i2 = histeq(i1),對i1直方圖均衡化
  • imhist(i2) ,繪制i2的直方圖
  • i2 = adapthisteq(i1),改進的直方圖均衡化效果,針對空間信息做了改進。

具體情況:若原圖各個灰度等級都存在,但分布不均,均衡化后雖然分布很平直,但是可能變換后的灰度等級縮小了,變換到了一個更小的灰度等級空間,此時可能效果并不好,所有具體情況要具體處理。如下圖5
圖片.png

3.直方圖規定化(直方圖匹配)

修改一幅圖像的直方圖,使得它與另一幅圖像的直方圖匹配或具有一種預先規定的函數情況。

目標:突出感興趣的灰度范圍,改善圖像質量。

場景:上一小節,我們將灰度分布不均的圖像通過均衡化轉換為灰度理論均勻(分布概率密度曲線平直)的圖像,增強了圖像效果,但是實際場景,我們可能要突出某一些部分,又或是我們發現灰度在靠近0和1的部分太暗或太亮會導致細節模糊甚至丟失,自然的我們想到類似于均衡變換,將不均的概率分布曲線轉換成我們特定的預設的一種灰度分布上(如高斯分布),以實現我們需要的增強效果。

方法:1)直接通過f到g的映射,f為原函數,g為變換后的函數,但過程可能很復雜。2)通過均衡變換為中介,將原圖灰度分布f1和預設的直方圖分布f2都做一個變換到均衡分布,分布使用映射函數s和t,那么對原圖做s變換,再做t的反變換就得到了f2的分布。過程簡單。

步驟如圖6所示:


圖片.png

預設分布:規定化的效果較好,但是前提是需要知道圖像的變換的較好的預設分布,這里需要根據具體情況分析,比如根據圖中的場景,能分析該圖主要應該呈現兩種色調,那么對預設的分布,我們可以給出一種“雙峰”的灰度分布,那么處理后的圖像就會趨于呈現兩種色調。

特例:二值圖,雙峰分布圖中間添加閾值。


灰度變換

場景:曝光不足或過度等原因,產生對比度不足,使圖像細節分辨不清。

方法:使用灰度變換方法解決這些問題。

對比度:簡單講就是最白與最黑的亮度單位的相除值,體現的是灰度級的max和min的極差。

灰度級變換:空間域點運算,通過某個變換函數有:g(x,y)=T(f(x,y)),T即為變換函數。也可以寫作R = T(r)

1.線性灰度變換

變換函數T為線性函數。

  • 加常數:會縮小動態范圍,降低對比度,調節整體亮度,可能會損失某一部分灰度等級。如下圖所示,圖7
    圖片.png

(特例)圖像反轉:g(x,y)=255-f(x,y),簡單理解為"黑白顛倒".

  • 乘常數:g(x,y)=Cf(x,y).改變動態范圍。

  • 分段線性變換:變換函數采用分段的線性函數,突出感興趣的部分。

    (特例)削波,cliping。

    (特例)閾值化,thresholding。二值圖。

    (特例)灰度窗口變換,將某一區間的灰度級和其他部分(背景)分開。

非線性灰度變換

  • 對數變化,低灰度區擴展,高灰度區壓縮
  • 之所變化,高灰度區擴展,低灰度區抑制。
  • 冪函數。
  • LUT變換,Look Up Table,查找表。一種映射表。

Matlab處理

  • bc = imcomplement(b),圖像反轉
  • th = imadjust(t,[],[],0.5),用于進行圖像的灰度變換

圖像運算

1.算術運算:加減乘除

  • 加法:C(x,y)=A(x,y)+B(x,y)。去除“疊加性”噪音;生成圖像疊加效果。
  • 減法:與加法類似。
  • 乘法:C(x,y)=A(x,y)*B(x,y)。局部顯示;二值蒙版圖像與原圖像做乘法。
  • 除法:不常用

2.邏輯運算:與或非

3.比較運算:如,取平均,最大,最小


圖像幾何變換

幾何失真分為系統失真和非系統失真,系統失真是有規律的、能預測的,非系統失真則是隨機的。

  • 鏡頭畸變
  • 遙感圖像矯正:飛行器和地球相對運動造成呈現掃描不規整。
  • 圖像配準:工業生產、醫院中裝置定位。

幾何變換是圖像中物體的空間變換,可以看成是圖像內各物體在圖像內移動的過程,如轉動、扭曲、傾斜、拉伸。

1.基本幾何變換的定義

原圖為f(x,y),變換為,x'=T1(x,y),y'=T2(x,y),幾何變換僅對x,y坐標做變換,灰度值不變。(注意:這里的變換不簡單為單個變量的變換,如x'的變換實際上同時涉及變量x和y)

目標圖像為g(x,y)=f(T1(x,y),T2(x,y))

2.常用的幾何變換

  • 平移變換。g(x,y)=f(x+tx,y+ty),原圖平移向量為(tx,ty)。(這里需要注意計算機呈像中的坐標選取,是左上角為坐標原點的,理論研究中采用常用的數學坐標)。寫做矩陣形式為,圖8
    圖片.png
  • 鏡像:水平鏡像和垂直鏡像

    • 水平鏡像:沿Y軸翻轉。g(x,y)=f(width-x,y),矩陣形式為圖9
      圖片.png
    • 垂直鏡像:沿x軸翻轉。g(x,y)=f(x,heigh-y),矩陣形式為圖10
      圖片.png
  • 轉置:x,y坐標對換。與旋轉是不同的,事實上,轉置后的圖與旋轉90度后的圖是水平鏡像關系。矩陣表示如圖11
    圖片.png
  • 旋轉變換:繞原點旋轉a度,(注:逆時針為正向角度)。旋轉后畫布變大,圖像增大。數學關系用極坐標表示較為方便。如圖12
    圖片.png

    通常的做法,是以圖像中心做旋轉,方法:

    • 圖像中心平移到原點
    • 順時針以原點做旋轉
    • 圖像中心平移回原坐標

    以上三個變換可以寫成三種變換的矩陣相乘的形式,就可以一步到位。

    問題:旋轉中會出現鋸齒、網紋、斷裂。

    • 像素的方向是固定的,縱橫。旋轉的時候并不會按某一個旋轉角度分布像素,這樣旋轉后像素點就會有交錯,不規整,錯位。像素排列不完全按照原有的相鄰關系。
    • 計算過程中,xy的映射涉及到三角函數,會進行浮點數取整,最終造成某些點空洞(沒有取值),漏點

    問題的本質都是應為像素值填充不是連續的

    解決辦法:插值填充

  • 縮放變換:縮小的時候要滿足采樣定理,否則會發生信息丟失;放大的時候需要對空位填入適當的新值,是信息的估計。矩陣表示如下圖13.
    圖片.png
  • 拉伸變換:混合的幾何變換,或者說是幾何變換的一般形式。如下圖14
    圖片.png

3.灰度級差值

解決的問題:旋轉中出現的漏點、放大中新增的空點、拉伸中的空點,都存在未知像素值的點。

解決方法:插值法,利用鄰域的像素來估計新的像素值。

a)最鄰近插值:重復最臨近點,取最近點的像素值。簡單,但效果一般,放大倍數太大時會出現馬賽克現象。

b)雙線性插值:根據該空點上下左右4個點進行兩次插值。f(x,y)=ax+by+cxy+d。(xy兩個方向上都取線性變換值)

c)三次立方插值(立方卷積插值):差值函數為S(x)(是一個擬合的正弦差值函數,sinx/x,這是信息論中已知的優秀的差值算法,認為圖像中的任何兩個連續點的灰度值不是線性變換,而是一種sinx/x的函數,故采用擬合該函數的一個立方差值函數來代替計算),如下圖15

圖片.png

待求像素的灰度值由周圍16個點的灰度值加權內插得到,計算量大,效果較好。矩陣表示為圖16
圖片.png


實踐任務

Matlab和Python分別實現下列任務

  • 加載圖像
  • 預備任務:彩色圖像到灰度圖像的變換(因為之后的學習大多處理灰度圖,所有需要將彩色圖變換到灰度圖)
  • 實踐1:灰度圖及其灰度直方圖,和均衡化后的圖及其直方圖,4個subplot做對比呈現
  • 實踐2:灰度圖按高斯分布和雙峰分布做直方圖匹配,給出4個subplot對比呈現
  • 實踐3:圖像旋轉,及插值處理。
  • 實踐4:圖像高倍放大,及插值算法處理比較。
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容