【画像処理】ガウシアンフィルタの原理・特徴・計算式

画像処理におけるガウシアンフィルタの原理や計算式についてまとめました。

ガウシアンフィルタの特徴

本ページの内容は以下動画で解説しています。

ガウシアンフィルタは、画像処理では写真の平滑化などに使われるフィルタの1つです。
考え方は簡単で、ガウス分布を利用して「注目画素からの距離に応じて近傍の画素値に重みをかける」という処理を行い、自然な平滑化を実現します。

■入力画像(左)、出力画像(右)

【計算式】ガウシアンフィルタのカーネル

ガウシアンフィルタでは、次のようなガウス分布を用いて近傍画素値に重み付けを行います。

(1)   \begin{eqnarray*} g(x,y,\sigma )=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{x^2+y^2}{2\sigma^2}) \end{eqnarray*}

標準偏差\sigma =1.3で8近傍ガウシアンフィルタの場合、カーネルKは次のようになります。

(2)   \begin{eqnarray*} K&=&\frac{1}{16} \left[ \begin{array}{ccccc} 1 & 2 & 1\\ 2 & 4 & 2\\ 1 & 2 & 1\\ \end{array} \right] \end{eqnarray*}

注目画素(中心)からの距離が近い程、重みの値が大きくなっていることがわかります。
標準偏差\sigmaの値が大きくなるほど、ガウス分布が平たくなり重みの差が小さくなるため、平滑化の効果も大きくなります。

【応用例】プログラミングで実装

プログラミングによる実装例について下記事で解説しています。

言語 解説記事
Python 【Python/OpenCV】ガウシアンフィルタでぼかし・平滑化
C# 【C#】ガウシアンフィルタで画像のぼかし(ノイズ除去)
【画像処理入門】アルゴリズム&プログラミング
画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

コメント

  1. fuyacho より:

    PYTHONについて大変参考になります。
    exp(-(x*x + y*y)/2sigma)
    上の記事にマイナスがないように思います。

    • 管理人 より:

      ※fuyacho様
      コメントありがとうございます。
      ご指摘の通り、マイナスが抜けていましたので修正しました。