既然是去除噪聲,接下來我們就介紹幾種常見的噪聲。
常見噪聲種類?
首先我們介紹最著名的噪聲——高斯噪聲:無論是做什麼的小夥伴,或多或少都會聽說過高斯噪聲。小白不想把複雜的數學公式拿上進行講解,大家可以簡單記成這種噪聲符合正態分布就可以啦,我們用「影響圖像處理最深遠的人」的相片來直觀的展現一下高斯噪聲的樣子。
首先看一下沒有噪聲的的圖片
我們看一下在這張圖片上加了0.08的高斯噪聲的結果:
可以值觀的看出來第二張圖片比第一張圖片要模糊很多。
椒鹽噪聲:這種噪聲就相當於是你抓了一把椒鹽,然後隨意的撒在了圖片上面(每回想到椒鹽噪聲的時候,小白都能想起食堂賣的椒鹽餅,沒錯就是那個種效果)。一樣,我們也來看一下椒鹽噪聲的樣子。
均勻噪聲:根據名字也能比較容易知道這是一種什麼噪聲。沒錯,就是噪聲是均勻分布的。我們也來看一下圖像的樣子。
除了上訴噪聲之外,還有很多例如伽馬噪聲,瑞麗噪聲等等。由於本問主要是講解如何去除噪聲,這裡就不在講述其他噪聲,請感興趣的小夥伴自行百度。
濾波數學原理
小白有個感覺和大家分享一下,影響科研的只有兩門學科:數學和英語。英語決定你在某個領域的廣度;數學覺得你在某個領域的深度。哎呀,說多了,回到正題上來,就是無論怎麼簡化的去講解一個東西,我們都繞不開對數學機理的剖析。不過小白會儘可能的為大家簡化複雜的公式。
小白覺得圖像濾波就是藉助周圍圖像的數據來修正我們想要修正的數據。舉個最簡單的例子,有一組數[1 2 6 4 5],我們發現中間有個數好像比較大,我們發現整個數據好像符合遞增的特點,所以這個數字有可能是3,但是我們又不能不「尊重」這個數本身的大小,所以怎麼辦呢,我們將估計的數和它表現的數求取平均數,也就是取4.5來代替原來的數。當然有可能根據需求採用不同的權重。
而對於灰度圖像來說是一個二維矩陣(彩色圖像可以轉換成灰度圖像),那麼我們不僅需要藉助左右的數據來推斷中間的數據,也需要藉助上下的數據來幫助我們修正我們的數據。所以我們的「加權係數」就變成了一個矩陣。例如我們可以選取對周圍的9個數求取平均值,那麼我們就可以用下面的矩陣來實現
我們用一個例子來掩飾一下我們的濾波操作。假設我們有一個8*8的圖像,我們需要用均值濾波來對其進行處理。比如我們相對圖像的(1,1)元素進行濾波,我們就將均值濾波模板的中間放到(1,1)處,然後把以(1,1)為圓心,1為半徑的像素分別乘以模板中對應位置的係數,求和之後球去個平均數即為(1,1)處濾波後的像素值。
可能小夥伴會問了,用一個3*3的模板去濾波,那(1,:)和(:,1)的像素都會出現越界的情況。為了應對這種情況,可以採用兩種方式:用0在原圖像的周圍填充濾波模板半徑寬度的數據;或者採用最外面一層的灰度值填充。
通過上面的圖片,紅框內所有像素加起來再求取平均數,之後再填充到原來的位置。為了讓小夥伴看的更清晰,我們再向下進行幾步。
我們又向右移動了三個位置。現在小夥伴可以計算一下右面問號處在濾波之後的像素為多少。結果將會在下期給出來哦~
濾波模板
接下來小白為大家介紹一些常見或者有趣的濾波模板。
上面這個模板是一個沒有用的模板,濾波之後還是他自己。
上面這個模板濾波後圖像會整體向左平移一個單位。
上面是著名的Sobel算子,是用來檢測圖像邊緣的濾波模板。
下面小白為大家介紹一種沒有模板的濾波——中值濾波。
中值濾波由Turky在1971年提出,最初用於時間序列分析,後來被用於圖像處理,並在去噪復原中取得了較好的效果。中值濾波器是基於次序統計完成信號恢復的一種典型的非線性濾波器,其基本原理是把圖像或序列中心點位置的值用該域的中值替代,具有運算簡單、速度快、除噪效果好等優點,曾被認為是非線性濾波的代表。
上面的句子比較長,小白覺得可以用一個簡單的例子,或者比較容易懂得話來說明什麼是中值濾波。
在原始數據的周圍選取一定的區域,將這個區域內所有的數都排序,選取排序後中間的一個數來代替原始數據。
接下來小白舉個例子,還是使用上面的圖,如果我們對紅色區域採用中值濾波。為了小夥伴們閱讀方便,我們再次將上面的圖片祭出。
採用中值濾波,首先需要對選中的區域內所有的灰度值進行排序,排序結果為[0 0 0 0 90 90 90 90 90],我們發現排在中間位置的是90,所以採用中值濾波後,該像素點的灰度值仍然為90。當然,這裡面小白要提醒大家,在採用中值濾波的時候一定要使用奇數個像素作為模板,不然中間的數就不會是一個數,是的濾波時候出現問題。
最後小白要為大家帶來高斯濾波
高斯濾波當然和高斯函數有關係,為了不廢話,小白直接給出高斯濾波的公式:
小白是最討厭公式的,相信很多小夥伴也和小白一樣討厭公式,所以直接給出一個5×5,σ=1的一個高斯濾波模板:
通過分析上面的矩陣,我們可以發現高斯濾波的模板的中心位置影響要大於邊緣位置的影響,這也正好是高斯函數正態性的體現。下面小白用一個立體圖來展示一下這個高斯模板。
通過這個立體圖形,可以明顯的看出是一個二維正態分布。
講了幾種濾波的原理和模板,小白將在下一講中為小夥伴們帶來如何使用Matlab來實現這些濾波操作。
謝謝小夥伴們一直以來的支持,感謝小夥伴們持續關注本公眾號,並將本公眾號分享給周圍的朋友。
如果您喜歡本文和本公眾號,
希望您能推送給周圍的好友。
一個贊就是對小白的一種支持
長按上面二維碼關注本公眾號