圖像增強:目的,改善圖像的視覺效果或轉變成更利於分析的形式。
一.空域增強
- 對比度增強:如直方圖均衡化等
- 圖像平滑:使邊緣等變的模糊
- 中值濾波
- 高斯濾波等
- 圖像銳化:使邊緣變得突出,最常用的是梯度法。
- 一階的有Prewwit算子,sobel算子,canny算子等;
- 二階的有laplace算子,laplace of Gauss算子(LOG)
二.頻域增強
- 低通濾波及高通濾波
圖像處理API的C++實現:
https://blog.csdn.net/weixin_40647819/category_7676770.html
https://blog.csdn.net/weixin_40647819/category_9285465.html
opencv API的介紹及調用
https://blog.csdn.net/weixin_40647819/category_7592760.html
詳細介紹:
1.高斯平滑
0)高斯濾波函數
對於圖像來說,高斯濾波器是利用高斯核的一個2維的卷積算子,用於圖像模糊化(去除細節和噪聲)。
1) 高斯分布
一維高斯分布:
二維高斯分布:
2) 高斯核(需要歸一化)
理論上,高斯分布在所有定義域上都有非負值,這就需要一個無限大的卷積核。實際上,僅需要取均值周圍3倍標准差內的值,以外部份直接去掉即可。 如下圖為一個標准差為1.0的整數值高斯核。
3) 高斯濾波性質
高斯函數具有五個重要的性質,這些性質使得它在早期圖像處理中特別有用.這些性質表明,高斯平滑濾波器無論在空間域還是在頻率域都是十分有效的低通濾波器,且在實際圖像處理中得到了工程人員的有效使用.高斯函數具有五個十分重要的性質,它們是:
(1)二維高斯函數具有旋轉對稱性,即濾波器在各個方向上的平滑程度是相同的.一般來說,一幅圖像的邊緣方向是事先不知道的,因此,在濾波前是無法確定一個方向上比另一方向上需要更多的平滑.旋轉對稱性意味着高斯平滑濾波器在后續邊緣檢測中不會偏向任一方向.
(2)高斯函數是單值函數.這表明,高斯濾波器用像素鄰域的加權均值來代替該點的像素值,而每一鄰域像素點權值是隨該點與中心點的距離單調增減的.這一性質是很重要的,因為邊緣是一種圖像局部特征,如果平滑運算對離算子中心很遠的像素點仍然有很大作用,則平滑運算會使圖像失真.
(3)高斯函數的傅立葉變換頻譜是單瓣的.正如下面所示,這一性質是高斯函數付立葉變換等於高斯函數本身這一事實的直接推論.圖像常被不希望的高頻信號所污染(噪聲和細紋理).而所希望的圖像特征(如邊緣),既含有低頻分量,又含有高頻分量.高斯函數付立葉變換的單瓣意味着平滑圖像不會被不需要的高頻信號所污染,同時保留了大部分所需信號.
(4)高斯濾波器寬度(決定着平滑程度)是由參數σ表征的,而且σ和平滑程度的關系是非常簡單的.σ越大,高斯濾波器的頻帶就越寬,平滑程度就越好.通過調節平滑程度參數σ,可在圖像特征過分模糊(過平滑)與平滑圖像中由於噪聲和細紋理所引起的過多的不希望突變量(欠平滑)之間取得折衷.
(5)由於高斯函數的可分離性,較大尺寸的高斯濾波器可以得以有效地實現.二維高斯函數卷積可以分兩步來進行,首先將圖像與一維高斯函數進行卷積,然后將卷積結果與方向垂直的相同一維高斯函數卷積.因此,二維高斯濾波的計算量隨濾波模板寬度成線性增長而不是成平方增長.https://blog.csdn.net/qq_36359022/article/details/80188873
4 )高斯濾波應用
高斯濾波后圖像被平滑的程度取決於標准差。它的輸出是領域像素的加權平均,同時離中心越近的像素權重越高。因此,相對於均值濾波(mean filter)它的平滑效果更柔和,而且邊緣保留的也更好。
高斯濾波被用作為平滑濾波器的本質原因是因為它是一個低通濾波器,見下圖。而且,大部份基於卷積平滑濾波器都是低通濾波器。
圖.高斯濾波器(標准差=3像素)的頻率響應。The spatial frequency axis is marked
in cycles per pixel, and hence no value above 0.5 has a real meaning。
5 )高斯濾波步驟
(1)移動相關核的中心元素,使它位於輸入圖像待處理像素的正上方
(2)將輸入圖像的像素值作為權重,乘以相關核
(3)將上面各步得到的結果相加做為輸出
圖像梯度:一般用差分法求梯度(經常用梯度的近似作為梯度,減少計算量)
2.Prewwit 算子
3.sobel 算子
帶權的Prewwit,和Prewwit區別,認為鄰域距離對像素權重產生影響,將核上4鄰域的權重變為8鄰域權重的兩倍。
4.canny 算子
https://blog.csdn.net/weixin_40647819/article/details/91411424
https://blog.csdn.net/fengye2two/article/details/79190759
5.laplace算子
6.LOG算子
https://blog.csdn.net/zhangxueyang1/article/details/54232127