高斯模糊,聽起來很高大上,其實就是一種很基礎的數學演算法套用,不要被「高斯」迷惑了雙眼,它並沒有高斯本人那麽深不可測。。
高斯模糊之所以叫高斯模糊,是因為它運用了高斯的正態分布的密度函式,我記得是大二時候學的:
其中,μ是x的均值,σ是x的標準差(評論提醒)。由於每次計算都以當前計算點為原點,所以μ等於0。於是公式進一步簡化為:
在圖形上,正態分布是一種鐘形曲線,越接近中心,取值越大,越遠離中心,取值越小。
計算平均值的時候,我們只需要將"中心點"作為原點,其他點按照其在正態曲線上的位置,分配權重,就可以得到一個加權平均值。
而他的二維方程式是:
也就是說,把它運用於影像演算法中,就會使影像出現模糊的效果:
我從最基礎的開始舉例子,以一維方程式做起,將x,y軸分別進行高斯模糊。
我們假設σ為1.5吧,假設有x軸上三個像素點,中間點為原點:
帶入公式後,三個點的值為:
這3個像素的權重總和等於0.80858986,如果只計算這3個點的加權平均,還必須讓它們的權重之和等於1,因此上面3個值還要分別除以0.80858986。
那麽,這個數位有什麽用呢?
我們都知道,每一個像素點,決定它色差的是RGB值,計算加權平均的時候要分別計算;
現在我們把GB設為0,只計算R,我們來假設一個點,R值為27,125,22:
將三個數位乘以加權平均值後,分別為6.8391,61.6725,6.8391
而中心點的R值就變為 6.8391+61.6725+6.8391 = 75.5137 記為75;
變為:
就使像素點相對於旁邊兩點更加柔和了。
參考地址:
http://www.
ruanyifeng.com/blog/201
2/11/gaussian_blur.html
http://www. swageroo.com/wordpress/ how-to-program-a-gaussian-blur-without-using-3rd-party-libraries/
http:// m.2cto.com/kf/201605/50 6616.html