tft每日頭條

 > 生活

 > 邊緣檢測後去除噪點

邊緣檢測後去除噪點

生活 更新时间:2024-07-06 14:48:52

本節要點提示:介紹圖片濾波的方法,主要從以下兩個方面:圖像的去噪,也叫平滑;圖像銳化。還原一張圖片有噪點,去噪磨平的過程。

濾波主要是兩個方面:一個叫圖像的去噪,也叫平滑;另一個叫銳化,電影裡經常出現的畫面,刑警隊長對着刑偵專家說趕緊把照片這塊弄得清楚一點,做好銳化處理。

這節課先來講一下:去躁,就是說一張圖片裡面會有好多的噪點,特别醜。尤其女性肯定特别讨厭這種東西,就是我們在圖片上看是這麼一些點。但是它在數據裡面去反映出來。

邊緣檢測後去除噪點(計算機視覺系列3)1

我們現在先假設這是一個灰度圖,就是二維的矩陣。這裡面就會出現一些孤立的點,孤立的點是什麼意思呢?比如說這邊周圍數值都是35到50之間,這個點周圍的這些數據點的數據值就是35到50之間變化不大。但是這種噪點在這邊就會出現一個孤立點。孤立點就是突然這邊出現一個255的點或者一個0的點,就是特别黑或者特别亮的點,突兀的出現在圖像當中,這個就是噪點。

邊緣檢測後去除噪點(計算機視覺系列3)2

這個噪點又有個名字叫做椒鹽噪點,當然還有一些其他噪點。比如說噪聲的分布滿足高斯正态分布,正态函數。就是說會一定的概率出現一個數,加在原始的像素值上,我們暫時先不考慮。

我們先考慮這種椒鹽噪點,就像女孩的臉上突然長了一顆痘痘,特别想去掉,用磨皮。所以我們要去除這部分噪點,跟磨皮的效果很像。相當于要把噪點就磨平變成一個跟35到50之間的一個數。

那怎麼做呢?就利用了濾波器,英文叫kernal。這一個點周圍八個點,就是說3×3的一個範圍内,連他自己有九個點,它周圍就是八個點,根據八個點去把這個數值給變成一個比較正常點的數值,叫平均濾波。

kernal會在這個圖片上進行滑動,就是不斷的走啊走。因為這些是九個數,所以他就相當于一個窗口,他在圖片上窗口進行滑動,那麼每次在圖片上覆蓋的範圍,就是這麼一個3×3的範圍,有九個數被覆蓋。

那麼每個數如果都取1/9,就是說對這範圍内這九個數,圖片上這邊覆蓋了九個數,這邊第一個數跟它圖片上覆蓋的數相乘,第二個跟第二個相乘,第三個跟第三個相乘,互相相乘。再全部加起來成了1/9。最後是算這九個數的平均值,這邊就變成5了。

核在圖片上進行這麼一次覆蓋操作之後,新的圖片裡面就會産生5這個數。核在圖片上進行一下滑動,比如說向右邊滑動一格,變到這裡來了,往這邊又移了一格,這邊就出來了2、3,然後這邊又會計算一個值,填在這邊第二個,然後它會接着移動到某一個位置,中間這邊出來一個255,這是個躁點。比如說255是個噪點,周圍的值都比較平滑,比如說23,33 ……那麼這個點就明顯是一個噪點,那麼這些值求平均值之後,255就瞬間減下來了,也就完成了圖像的去躁過程。

那麼拿這個核在這圖片上進行不斷滑動的操作叫做卷積,卷積神經網絡裡面非常基礎的一個操作。

一定大小的核在一張圖片上,從左到右開始一步步滑,然後再從上到下一步步滑。每滑一次得到一個數值,得到一個新的圖片。比如這是一個5×5的圖,第一格滑,然後滑第二格,滑到第三格的時候已經到這邊頂了。這個核裡面其實也就生成了三個數。同樣道理,豎列裡面也就生成了三個數,那也就把圖變小了。他們是怎麼一個關系呢?比如說核的大小是N乘N ,圖的大小是S乘以S 。如果以一步一步滑,那麼生成的圖的寬的大小就是S-N 1。

如果我一次是滑兩格,或者滑三格,我們一般把這個窗口或者說這個核在圖上進行滑的時候,每一次移動幾格叫步長(stride)。然後設stride的為K,如果我們步長為1,相當于移動的長度就是這麼多。一次移K格那麼就相當于要除以K ,移的變少了。但是因為我們一開始都不移的時候也計算了一次,所以是對它進行上取整。

我們經常需要的是保證這個圖經過卷積之後不變。所以一般會對這個圖進行擴充,在神經網絡裡面又叫padding。擴充一圈就是padding為1,擴充兩圈就是padding為2。當然一圈,記住是上下左右各增加一個。這個擴充填的一般最簡單的全填0或者全填255,還有一些比較複雜的。可以按照填充的數離下面哪個數最近,就填幾。還有更複雜的就是鏡像的方式,比如說這邊的像素排布是12345,這邊要填成五個數就按照鏡像來12345。最簡單就是直接填充,填充0是用的比較多的。

上面講了卷積的操作是怎麼進行操作的,包括裡面步長,還有padding是怎麼一回事。那麼大家應該有了基本的了解。當然這知識點大家都要記住,後面神經網絡裡面需要用。然後這邊不是有個計算公式嗎,如果還要加上padding的話,這個公式又應該怎麼寫?就是輸出這個圖的大小跟這些補償padding的多少,還有包括卷積核的大小什麼關系。如果加padding,padding為1 ,左右上下都加。我們設padding等于A,那麼要加上個2A。公式就是S-N 1 2A,除以K然後上取整。

上面說的可以用這種平均的方法,但我們想即使再怎麼平均,255對最後生成的數還是會有影響。所以還有一種方法中值濾波,就是裡面這麼一堆數,所有加起來求個平均值。255還是對他有影響,所以就還可以選取它的中值。就是把這些數從小到大進行排列,就是說我是不是選取中間的數,也就是九的話,中間12345第五個數,我們選取這第五個數代表核在這個位置生成的數。這裡面中間那個數應該多少是不是30,所以這邊就用30來代替。如果你用255去算平均的話,肯定是遠大于30的一個數。

去躁就簡單講這麼多,當然還有更深入的了解,大家可以去網上去找這種去躁的方法,還有非常多的。

去躁的内容我們就先講到這裡,下節我們講一講銳化的操作。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved