本文爲個人學習筆記(持續更新中)
如果覺得寫的不錯歡迎點贊收藏交流
如有疑問歡迎留言或者私信
圖像處理簡介
圖像處理的目的:
- 處理失真(suppress distortions)
- 增強相關信息
- 爲接下來的圖像分析做預處理
1. 圖像分析的種類及常用技術
1.1 空間域操作(spatial domain operations)
1.1.1 點操作(對單個像素點的intensity轉換)
-
對比度拉伸(Contrast streching)
操作:
灰度值(grey value)小於L的像素設爲黑(即灰度值爲0),灰度值大於H的像素設爲白, 在L,H之間的像素進行線性縮放到最大值
效果:
增強圖片對比度 -
強度閾值(Intensity thresholding)
操作:
灰度值小於Threshold的點設爲黑,大於Threshold則設爲白
效果:
等於特殊情況下的對比度拉伸,產生兩色灰度圖,通常用於圖像增強,只在對象和背景intensity很不同的情況下效果好 -
自動閾值強度(automatic intensity thresholding):
操作:
方式一:
利用Otsu’s method計算閾值T, 低於T的像素爲class 1,高於T的爲class 2,爲intensity variances, 爲像素比例, 爲mean intensity
使得 inter-class variance最大化:
方式二:
Iso-method計算閾值T。初始化T,計算,利用更新T值直至T不再變化
效果:
同強度閾值 -
多級閾值(multi-level thresholding):
操作
與 2.強度閾值 相同,不過設立多個T值 -
強度翻轉(intensity inversion):
操作:
效果:
針對背景主要爲黑的圖片的灰白細節。 -
對數變換(log transformation):
操作:
c爲常數
效果:
低灰度值點輸出的灰度值範圍變大,高灰度值點輸出的灰度值範圍變小。
也可以針對像素值方差過大的圖片進行動態範圍(maxvalue-minvalue)壓縮。 -
冪變換(power transformation):
操作:
均爲常數
效果:
類似於對數變換,取決於的值 -
分段線性變換(Piecewise linear transformations):
是對於其他變換的補充和調整,變換圖可以很複雜,所以相比於一般的變換會要求輸入量更多(像素點更多)。 -
分段對比度拉伸(Piecewise contrast streching):
分段線性變換的一種簡單情況,一般用於放映記錄設備上擴大圖片的動態範圍(顯示的顏色更豐富) -
灰度切割(grey-level slicing):
操作:
將某一範圍內的灰度值增強,不在範圍內的降低或者不變
效果:
突出某一色彩範圍 -
位圖切割(bit-plane slicing):
操作
n-bits圖片有n個bit-planes
高亮對整體圖片顯示影響最大的bits
效果:
用於圖片壓縮
1.1.2 像素強度的直方圖和處理
對於所有可能的像素強度(like 0-255),統計圖片中相對應的像素的數量,畫成直方圖
- 直方圖均衡(histogram qualization)
操作:
高強度的增強對比度,低像素降低對比度
連續情況:, 其中是單調遞增的轉換函數,r爲in,s爲out,範圍均爲[0, L-1]
設輸入輸入圖片像素的概率分佈PDF and
根據概率論我們有:
然後我們選擇s的CDF:
則:
代入上式得到 for 0<=s<=L-1, 即unitform distribution。
離散情況:
我們有:表示像素值爲的像素佔所有像素數量的比例
則:for k=0,1,…L-1
效果:
將圖片轉換成具有均衡直方圖的圖片。實際應用中,圖片是離散的,得到完美的uniform distribution很少見。
- 直方圖匹配(histogram matching):
將圖片轉換成具規定形狀直方圖的圖片
我們已經有
我們在定義一個
就可以得到輸出圖像:
1.1.3 算術邏輯運算(Arithmetic and logical operations)
對兩個圖片進行像素與像素的算數和邏輯運算,比如AND, OR, 加法,減法,可以用於動作檢測,MASKING等
1.1.4 鄰居點操作 (spatial filtering on many pixels)
1.1.4.1 降噪系列
圖像平均(image averaging):
操作:
其中分別代表噪音圖像,噪音,原圖像。
對每K個像素求平均:
效果:
用於圖像去噪
K增加,像素值的種類下降
假設所有噪音相互獨立(uncorrelated),且圖片無畸變
空間濾波(spatial filtering):
操作:
選取以像素(x,y)爲中心的矩陣爲 /filter/kernel/mask(後文統稱filter),經過運算產生新的(x,y)像素值
example one: 離散卷積(discrete convolution)(使用線性變換filter h(i,j)):
example two: 平滑過濾(smoothing spatial filters):
選取filter的平均值/加權平均值產生新的g(x,y),可以模糊邊緣
幾種常用的filter:
- Gaussian filter:
需要設定標準差。計算加權平均,越小,降噪效果越好,細節丟失越多,圖片越模糊 - Median filter (non-linear filter)
使用neighbours的中位數替代中心像素,對於處理脈衝噪音很有效。
filter迫使突出的像素(噪音)更像median。同時,小於的像素蔟也會被的fiter消除。 - Max/Min filter(non-linear filter)
使用neighbours的最大/最小值替代中心像素,對於處理脈衝噪音很有效。 - Max/min/average pooling
減少計算量,需要設定stride和kernel size
1.1.4.2 銳化系列:
檢測邊緣, 加強模糊的細節
定義像素導數:
1-D f(x):
一階導數:
二階導數:
一階導變化可以表示邊緣的出現,二階導可以表示該像素出現在邊緣暗邊還是亮邊。
總體來說一階導數對厚邊緣反應良好,二階導數對小邊緣(細線,小點)更敏感。
1.2 變換域操作(主要是在傅里葉空間Fourier space)
TBC…