① 數字圖像處理clean演算法的MATLAB代碼
圖像去噪是數字圖像處理中的重要環節和步驟。去噪效果的好壞直接影響到後續的圖像處理工作如圖像分割、邊緣檢測等。圖像信號在產生、傳輸過程中都可能會受到雜訊的污染,一般數字圖像系統中的常見雜訊主要有:高斯雜訊(主要由阻性元器件內部產生)、椒鹽雜訊(主要是圖像切割引起的黑圖像上的白點雜訊或光電轉換過程中產生的泊松雜訊)等;
目前比較經典的圖像去噪演算法主要有以下三種:
均值濾波演算法:也稱線性濾波,主要思想為鄰域平均法,即用幾個像素灰度的平均值來代替每個像素的灰度。有效抑制加性雜訊,但容易引起圖像模糊,可以對其進行改進,主要避開對景物邊緣的平滑處理。
中值濾波:基於排序統計理論的一種能有效抑制雜訊的非線性平滑濾波信號處理技術。中值濾波的特點即是首先確定一個以某個像素為中心點的鄰域,一般為方形鄰域,也可以為圓形、十字形等等,然後將鄰域中各像素的灰度值排序,取其中間值作為中心像素灰度的新值,這里領域被稱為窗口,當窗口移動時,利用中值濾波可以對圖像進行平滑處理。其演算法簡單,時間復雜度低,但其對點、線和尖頂多的圖像不宜採用中值濾波。很容易自適應化。 Wiener維納濾波:使原始圖像和其恢復圖像之間的均方誤差最小的復原方法,是一種自適應濾波器,根據局部方差來調整濾波器效果。對於去除高斯雜訊效果明顯。
實驗一:均值濾波對高斯雜訊的效果
I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%讀取圖像
② 中值濾波和均勻平滑在去圖像雜訊上各有什麼特點
中值濾波是一種非線性濾波,能很好的去除椒鹽雜訊;均勻平滑濾波是線性的,濾波後的圖像變模糊。這是我用matlab實現的,看圖就更容易理解了。
③ 邊緣檢測運算元中抗噪性能最好的是
邊緣檢測演算法是一個傳統的CV問題,傳統的CV方法有canny演算法。引入機器學習,深度學習的方法後,又有了structure forests,以及HED演算法。
canny 運算元
canny演算法是一種multi-stage 的演算法,其處理圖片的過程分為如下五個步驟:
1. Noise Rection
圖片中的高頻信息指顏色快速變化,低頻信息指顏色平緩的變化。邊緣檢測過程中需要檢測的圖片邊緣屬於高頻信息。而圖片中雜訊部分也屬於高頻信息,因此我們需要對圖像進行去噪處理。常用的是使用5*5的高斯濾波核來平滑圖像,濾波核的數量呈高斯分布。
2. Finding Intensity Gradient of the Image
計算像素梯度的幅值以及方向,常用的運算元有Rober,sobel,計算水平及垂直方向的差分。找出梯度較大的區域,這部分區域屬於圖像增強的區域,此時得到的邊緣信息比較粗大。
3.Non-Maximun Suppression
非極大值抑制屬於一種邊緣細化的方法,梯度大的位置有可能為邊緣,在這些位置沿著梯度方向,找到像素點的局部最大值,並將非最大值抑制。
4.Double Threhold
雙閥值方法,設置一個maxval,以及minval,梯度大於maxval則為強邊緣,梯度值介於maxval與minval則為弱邊緣點,小於minval為抑制點。
5.Edge tracking by hysteresis
滯後邊緣追蹤,主要處理梯度值位於maxval,minval中的一些像素點。由於邊緣是連續的,因此可以認為弱邊緣如果為真實邊緣則和強邊緣是聯通的,可由此判斷其是否為真實邊緣。