高斯模糊演算法

2021-10-22 15:38:56 字數 2435 閱讀 8956

通常,影象處理軟體會提供"模糊"(blur)濾鏡,使產生模糊的效果。

"模糊"的演算法有很多種,其中有一種叫做"高斯模糊"(gaussian blur)。它將正態分佈(又名"高斯分布")用於影象處理。

本文介紹"高斯模糊"的演算法,你會看到這是乙個非常簡單易懂的演算法。本質上,它是一種資料平滑技術(data smoothing),適用於多個場合,影象處理恰好提供了乙個直觀的應用例項。

一、高斯模糊的原理

所謂"模糊",可以理解成每乙個畫素都取周邊畫素的平均值。

上圖中,2是中間點,周邊點都是1。

"中間點"取"周圍點"的平均值,就會變成1。在數值上,這是一種"平滑化"。在圖形上,就相當於產生"模糊"效果,"中間點"失去細節。

顯然,計算平均值時,取值範圍越大,"模糊效果"越強烈。

上面分別是原圖、模糊半徑3畫素、模糊半徑10畫素的效果。模糊半徑越大,影象就越模糊。從數值角度看,就是數值越平滑。

接下來的問題就是,既然每個點都要取周邊畫素的平均值,那麼應該如何分配權重呢?

如果使用簡單平均,顯然不是很合理,因為影象都是連續的,越靠近的點關係越密切,越遠離的點關係越疏遠。因此,加權平均更合理,距離越近的點權重越大,距離越遠的點權重越小。

二、正態分佈的權重

正態分佈顯然是一種可取的權重分配模式。

在圖形上,正態分佈是一種鐘形曲線,越接近中心,取值越大,越遠離中心,取值越小。

計算平均值的時候,我們只需要將"中心點"作為原點,其他點按照其在正態曲線上的位置,分配權重,就可以得到乙個加權平均值。

三、高斯函式

上面的正態分佈是一維的,影象都是二維的,所以我們需要二維的正態分佈。

正態分佈的密度函式叫做"高斯函式"(gaussian function)。它的一維形式是:

其中,μ是x的均值,σ是x的方差。因為計算平均值的時候,中心點就是原點,所以μ等於0。

根據一維高斯函式,可以推導得到二維高斯函式:

有了這個函式 ,就可以計算每個點的權重了。

四、權重矩陣

假定中心點的座標是(0,0),那麼距離它最近的8個點的座標如下:

更遠的點以此類推。

為了計算權重矩陣,需要設定σ的值。假定σ=1.5,則模糊半徑為1的權重矩陣如下:

這9個點的權重總和等於0.4787147,如果只計算這9個點的加權平均,還必須讓它們的權重之和等於1,因此上面9個值還要分別除以0.4787147,得到最終的權重矩陣。

五、計算高斯模糊

有了權重矩陣,就可以計算高斯模糊的值了。

假設現有9個畫素點,灰度值(0-255)如下:

每個點乘以自己的權重值:

得到將這9個值加起來,就是中心點的高斯模糊的值。

對所有點重複這個過程,就得到了高斯模糊後的影象。如果原圖是彩色,可以對rgb三個通道分別做高斯模糊。

六、邊界點的處理

如果乙個點處於邊界,周邊沒有足夠的點,怎麼辦?

乙個變通方法,就是把已有的點拷貝到另一面的對應位置,模擬出完整的矩陣。

七、原理要點

關於高斯模糊即為高斯卷積的問題,由於卷積是對其中乙個函式作翻轉,然後再做平移,最後乘積求和,上述方法中只談到了平移但沒有提到翻轉,這有兩個原因,乙個是卷積中兩個函式的位置是對稱的,另乙個高斯函式本身是偶函式,翻轉之後還是自身。

高斯模糊演算法

正太分布,又稱高斯分布 正態分佈的前世今生 上 正態分佈的前世今生 下 通常,影象處理軟體會提供 模糊 blur 濾鏡,使產生模糊的效果。模糊 的演算法有很多種,其中有一種叫做 高斯模糊 gaussian blur 它將正態分佈 又名 高斯分布 用於影象處理。本文介紹 高斯模糊 的演算法,你會看到這...

高斯模糊演算法(直接型)

為了便於說明,先假設模糊半徑 r 3 方差 sigma 1.5 對應的畫素矩陣為 14 15 16 24 25 26 34 35 36 簡單一點的說,假設要對某個點進行高斯模糊,則把它視為 中心點,座標為 0,0 然後根據其模糊半徑的不同 如,模糊 半徑為3時 其周圍的8個點的 上下左右,兩個斜對角...

高斯模糊原理,演算法

詳解高斯濾波 高斯模糊的演算法原理 高斯濾波 線性平滑濾波,適用於消除高斯雜訊 具體操作是 用乙個模板 或稱卷積 掩模 掃瞄影象中的每乙個畫素,用模板確定的鄰域內畫素的加權平均灰度值去替代模板中心畫素點的值。高斯模糊 也叫高斯平滑 影象的高斯模糊過程就是影象與正態分佈做卷積。由於正態分佈又叫作高斯分...