数学 画像処理

【画像処理】画像を滑らかに!ガウシアンフィルタの仕組みと計算式

2023年4月6日

画像処理の世界では、さまざまなフィルタが存在し、それぞれ特定の目的のために利用されている。

今回は、画像を滑らかにするガウシアンフィルタについて、その原理や計算式、実際に計算する際の具体的な流れを解説していこうと思う。

 

ガウシアンフィルタとは

僕が描いたドラ〇もん

 

ガウシアンフィルタは、画像を滑らかにするために用いられるフィルタの一つで、ガウス分布関数(正規分布関数)を基にしている。

このフィルタは、画像内の細かいノイズやテクスチャを平滑化し、全体的になめらかな画像を生成する

 

画像編集ソフトなどでは標準で「ガウスぼかし」などの名前で搭載されている機能である。

ガウス分布関数

ガウス分布関数は、統計学や確率論で広く使われる分布で、正規分布とも呼ばれる。ガウス分布は、平均値を中心にして左右対称の形をした連続確率分布であり、特徴的な釣鐘型のグラフが描かれる。このガウス分布関数は以下の式で表される。

$$ f(x) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2} (\frac{x - \mu}{\sigma})^{2} } $$

ここで、\(x\)は確率変数、\(\mu\)は平均値、\(\sigma\)は標準偏差である。

σ=0.4,μ=0のとき

σ=0.8,μ=0のとき

\(\sigma\)が大きくなると平たくなっている。

 

ガウシアンカーネルの生成

ガウシアンフィルタでは、ガウス分布関数を2次元に拡張したカーネルを生成する。2次元ガウス関数は以下の式で表される。

$$ G(x, y) = \frac{1}{2\pi\sigma^{2}} e^{ -\frac{x^{2} + y^{2}}{2\sigma^{2}} } $$

この関数を用いて、画像処理で使用するカーネルを生成する。カーネルは通常、奇数サイズの正方行列である。例えば、3x3や5x5のようなサイズである。生成されたカーネルは、周囲の画素の重み付けに用いられる。

例えば、標準偏差\(\sigma = 1.3\)のとき、カーネルKは次のようになる。

$$ K=\frac{1}{16}\begin{bmatrix}1 & 2 & 1 \\2 & 4 & 2 \\1 & 2 & 1\end{bmatrix} $$

標準偏差\(\sigma\)の値が大きくなるほど、ガウス分布が平たくなり重みの差が小さくなるため、平滑化の効果も大きくなる。

 

畳み込み演算

ガウシアンフィルタを適用する際には、畳み込みという演算が行われる。畳み込みは、画像の各ピクセルに対して、周囲のピクセルとカーネルの要素を掛け合わせた値の合計を計算し、新しい画像のピクセル値とする

この操作をすべてのピクセルに対して行うことで、画像全体が平滑化される。なお、畳み込みを行う際には、画像の端の処理が問題となることがある。このような場合には、画像の端を0で埋める方法や、端の画素値を繰り返す方法などが用いられる。

 

まとめ

ガウシアンフィルタは、ガウス分布関数を基にしたカーネルを用いて画像を平滑化するフィルタである。

画像処理やコンピュータビジョンにおいて、ノイズ除去や画像の前処理として利用されることが多い。今回の記事で、その原理や計算式、実際に計算する際の具体的な流れを段階的に丁寧に解説した。

 

-数学, 画像処理