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

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

メディアンフィルタとは

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

メディアン(Median:中央値)とは、「データを値が小さい順に並べた時に、真ん中にあるデータ」のことです。
これを画像処理に利用したものがメディアンフィルタです。
メディアンフィルタでは、画像内の周囲と大きく異なる画素を取り除くことができるため、画像からゴマ塩ノイズを除去するのに適しています。

元画像(左)とフィルタをかけた画像(右)
12

メディアンフィルタのアルゴリズム(原理)

メディアンフィルタの処理の流れは以下のとおりです。

①注目画素の近傍の画素値を取得します(8近傍なら周囲8画素+注目画素の合計9画素)。

②取得した画素値を小さい順に並べます(8近傍なら9つの画素値を小さい順に並べる)。
③真ん中にある値(8近傍なら5番目に小さい値)を注目画素の新しい画素値とします。

このように、メディアンフィルタは他の平滑化フィルタと比べて、周囲の飛び抜けた値に左右されないという性質を持ちます。
そのため、ゴマ塩ノイズの除去に有効とされています。

メディアンフィルタの計算例

入力画像Iが次のように与えられたとき、メディアンフィルタ(8近傍)で処理した後の出力画像I'を求めます。。

(1)   \begin{eqnarray*} I= \left[ \begin{array}{ccccc} 100 & 200 & 150 & 110\\ 110 & 120 & 130 & 140\\ 190 &  230 & 210 & 150\\ 160 &  190 & 180 & 170\\ \end{array} \right] \end{eqnarray*}

注目画素I(1, 1)=120の場合、9画素(8近傍にある画素+注目画素)の画素値の中央値(5番目に小さい値)は150となります。
なので、出力画像の画素値素I'(1, 1)の画素値を120から150に置き換えます。

この操作を端以外の画素に対して行います。
尚、端の画素値はそのまま出力画像の画素値にします。

よって、出力画像I'は次のようになります。

(2)   \begin{eqnarray*} I'= \left[ \begin{array}{ccccc} 100 & 200 & 150 & 110\\ 110 & 150 & 150 & 140\\ 190 & 150 & 170 & 150\\ 160 & 190 & 180 & 170\\ \end{array} \right] \end{eqnarray*}

プログラミングで実装例

プログラムで実装した例を下記事で解説しています。

404 NOT FOUND | アルゴリズム速報
【C#】ガウシアンフィルタで画像のぼかし(ノイズ除去)
C#とガウシアンフィルタを用いて、画像からノイズを除去する方法について紹介します。
【画像処理入門】アルゴリズム&プログラミング
画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

コメント