1. 程式人生 > >【圖形學】濾波

【圖形學】濾波

持續更新中。。。。。。。

 


寫在前面

最近在學習關於美化人臉的渲染,磨皮,美白,先處理磨皮的方面,前期處於調研階段,持續更新到專案結束吧。

磨皮調研思路:畢竟現在還在入門打基礎的階段,百度發現效果比較好的是【雙邊濾波】,他是在【高斯模糊】的基礎上加上了保邊效果,高斯模糊又是【去噪聲】的一種,好嘞,一個簡單的學習路線出來啦,先搞定噪聲的基本原理和應用,之後進行高斯模糊,再去搞定雙邊(直接看過雙邊的原理,對不起數學老師。。看的好暈,還是從頭來吧)

 

 

參考博文:

淺墨大神:
【OpenCV入門教程之八】線性鄰域濾波專場:方框濾波、均值濾波與高斯濾波

【Unity Shader程式設計】之十五 螢幕高斯模糊(Gaussian Blur)後期特效的實現

 


 

傅立葉變換

一個有趣的傅立葉的文章,圖片給的都不錯


【影象濾波】即在儘量保留影象細節特徵的條件下對目標影象的噪聲進行抑制。

【濾波操作】消除影象中的噪聲成分叫作影象的平滑化或濾波操作。

【濾波器】一種形象的比喻法是:我們可以把濾波器想象成一個包含加權係數的視窗,當使用這個濾波器平滑處理影象時,就把這個視窗放到影象之上,透過這個視窗來看我們得到的影象。一個能降低高頻成分幅度的濾波器就能夠減弱噪聲的影響

【影象濾波的目的】:

  1. 抽出物件的特徵作為影象識別的特徵模式;
  2. 為適應影象處理的要求,消除影象數字化時所混入的噪聲

【濾波處理的要求】:

  1. 不能損壞影象的輪廓及邊緣等重要資訊;
  2. 使影象清晰視覺效果好。

【波器的種類】OpenCV中,提供瞭如下五種常用的影象平滑處理操作方法

  1. 方框濾波——boxblur函式
  2. 均值濾波(鄰域平均濾波)——blur函式  (線性)
  3. 高斯濾波——GaussianBlur函式  (線性)
  4. 中值濾波——medianBlur函式  (非線性)
  5. 雙邊濾波——bilateralFilter函式  (非線性)

【方框模糊】


【均值模糊】

使用卷積操作,使用的卷積核中各個元素值都相等,且相加等於1,也就是說,卷積後得到的畫素值是其鄰域內各個畫素的平均值。


【高斯模糊】(Gaussian Blur)

也叫高斯平滑,高斯濾波,其通常用它來減少影象噪聲以及降低細節層次,常常也被用於對影象進行模糊。

高斯模糊用的卷積核:高斯核。是一個正方形大小的濾波核。

通俗的講,高斯模糊就是對整幅影象進行加權平均的過程,每一個畫素點的值,都由其本身和鄰域內的其他畫素值經過加權平均後得到。高斯模糊的具體操作是:用一個模板(或稱卷積、掩模)掃描影象中的每一個畫素,用模板確定的鄰域內畫素的加權平均灰度值去替代模板中心畫素點的值。

高斯分佈的數學表示如下:

其中,x為到畫素中心的距離,σ為標準差(一般取值為1)。

模擬了鄰域每個畫素對當前處理畫素的影響程度,----距離越近,影響越大。高斯核的維數越高,模糊程度越大。

分條來說明一下高斯模糊的幾個要點:

  1. 從數學的角度來看,影象的高斯模糊過程就是影象與正態分佈做卷積
  2. 由於正態分佈又叫作高斯分佈,所以這項技術就叫作高斯模糊。
  3. 高斯模糊能夠把某一點周圍的畫素色值按高斯曲線統計起來,採用數學上加權平均的計算方法得到這條曲線的色值
  4. 所謂"模糊",可以理解成每一個畫素都取周邊畫素的平均值
  5. 影象與圓形方框模糊做卷積將會生成更加精確的焦外成像效果。由於高斯函式的傅立葉變換是另外一個高斯函式,所以高斯模糊對於影象來說就是一個低通濾波器

 

 

去噪聲

 

高斯模糊

邊緣保護:雙邊濾波

 

在影象的特徵提取:邊緣,細節

邊緣細節特徵提取:梯度、拉普拉斯變換、sobel運算元、sift、fast、LoG、DoG、HoG、LRT等這些運算元提取得到。(根據灰度變換)


【中值模糊】

選擇鄰域內對所有畫素排序後的中值替換顏色。


 

影象平滑-雙邊濾波+聯合雙邊濾波+導向濾波