【画像処理】適応的二値化処理の原理・特徴・計算式

画像処理における適応的二値化処理の原理や計算式についてまとめました。

適応的二値化処理

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

単純な二値化では、人が感覚的に閾値を決定する必要があります。その問題を改善するために登場したのが「適応2値化処理」です。
適応的二値化処理では、閾値を固定せず、注目画素と周囲にある画素の画素値の平均値を閾値とします。これにより、画素ごとに異なる閾値を設定できます。
以下のような全体的に緩やかに明るさが変化しているようなるような画像(不鮮明な写真や影が写り込んでいる写真など)に対して二値化処理するのに向いています。

■入力画像(左)と適応的二値化処理後の出力画像(右)

閾値の計算

入力画像の画素値をI(x,y)とすると、その閾値t(x,y)は以下の式で求まります。

(1)   \begin{eqnarray*} t(x,y)=\frac{1}{N}\sum_{x, y} \sum_{\subset D} I(x,y) \end{eqnarray*}

計算例

次のような入力画像Iが与えられた場合、I(1,1)=120の閾値t(1,1)を求めます。

(2)   \begin{eqnarray*} I= \left[ \begin{array}{ccccc} 100 & 200 & 150 \\ 110 & 120 & 120 \\ 190 & 230 & 200 \\ \end{array} \right] \end{eqnarray*}

※8近傍(注目画素+周囲8画素の画素値)の平均値で考えると

(3)   \begin{eqnarray*} t(1, 1)=\frac{1}{9}(100+200+150+110+120+120+190+230+200)=158 \end{eqnarray*}

となります。
I(1, 1)=120で、閾値t(1,1)未満なので、二値化処理で画素値が0となります。

実装例

適応的二値化処理をプログラムで実装した例を下記事で解説しています。

404 NOT FOUND | アルゴリズム速報
【画像処理入門】アルゴリズム&プログラミング
画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

コメント