エッジの検出 - 和歌山大学

2値画像処理
元画像
グレー画像
2値画像
単純な図形、文字から構成される図形・画像を表すには、
2個の画素値があれば良い。
例: 図形(文字)の画素値: 1
背景の画素値:
0
このような、画素値が2個しか持たない画像は、
2値画像(binary image)
と呼ばれる。
2値画像処理の意義
① 文字や図面のような、本質的に2値の画像が
多い
② カラー画像、濃淡画像の処理結果は2値画
像となる場合が多い
③ 2値画像の場合、1(あるいは0)の画素から
構成する部分の形は解析される対象となるの
で、幾何学的な概念、手法が利用できる
画像の2値化
カラー画像、グレー画像を2値画像に変
換する処理のこと
主な目的は元画像から関心のある部分
を抽出することである
例: 文字の抽出
特定の色の部分の抽出
特定の明るさの部分の抽出
動物体の抽出 など
さまざまな2値化の結果
閾値による2値化
グレー画像の場合、まず基準となる明るさを選択する
この基準明るさを閾値と呼ばれる。
画素値が閾値以上の画素を1の画素に、
画素値が閾値未満の画素を0の画素に
変換する。
1 ; f t ( x, y)  
0 ; f ( x, y)  t のとき
f ( x, y)  t のとき
f x (i, j)
閾値の決め方1
p-タイル法
前提:抽出すべき対象の面積が既知
S 0 :対象の面積 S :画像の面積
Histgram
S0
S1
t
p

1 p
S1  S 2
S1
S2
S
f x (i, j)
閾値の決め方2
モード法
対象はほぼ同じ明るさ、背景もほぼ同じ
明るさの場合、濃度値ヒストグラムが双峰
型の分布になる。
二つの峰の間の谷底を閾値 t とすればよ
い
画素の連結性
互いにつながっている(隣接している)画素同士
は互いに連結していると定義する
4-近傍
8-近傍
連結成分の解析
ラベリング
2値画像のラベリング
・・・●●●●・・・・・・●●・・・・・・・・
・・●●●●●●・・・・・●●●●・・・・・・
・・・●●●●・・・・・・●●●●・・・・・・
・・・・・・・・・・・・・●●●●●●・・・・
・・・●●・・・・●●・・・・・・・・・・・・
・・・・●●●●●●●・・●●●●●●・・・・
・・・・●●・・●●●●・・●●●●●●・・・
・・・・●●●・・●●●・・●●・・●●・・・
・・・・●●●●●●●・・・●●・・●●●・・
・・・・●●●●●●●・・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
2値画像のラベリング
●
2値画像には、連結している複数の領域が存
在する。
●
それらを区別するために、一つの領域に一
つの数値を割り当てる。
●
その数値をラベルと呼ぶ。
●
2値画像にある個々の領域に別々のラベルを
つける処理はラベリングという。
アルゴリズム1 領域成長法
処理を始める前に:
1.種画素の座標位置を保存するためのスタック(stack)を
用意する。
2.結果を保存するための画像領域を用意する。
領域成長法:
1.種を見つける。画像の左上の画素から、一個ずつ左か
ら右へ、そして一行の処理が終わると、次の行の処理に移
しがなら、画素値が1の画素を探す。見つからなかったら、
処理が終了する。
アルゴリズム1 領域成長法
→→→→→→→→→→→→→→→→→→→→→→→
→→→●●●●・・・・・・●●・・・・・・・・
・・●●●●●●・・・・・●●●●・・・・・・
・・・●●●●・・・・・・●●●●・・・・・・
・・・・・・・・・・・・・●●●●●●・・・・
・・・●●・・・・●●・・・・・・・・・・・・
・・・・●●●●●●●・・●●●●●●・・・・
・・・・●●・・●●●●・・●●●●●●・・・
・・・・●●●・・●●●・・●●・・●●・・・
・・・・●●●●●●●・・・●●・・●●●・・
・・・・●●●●●●●・・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
2.新しい種画素が見つかり、その位置をPとする
と、
2.1
新しいラベルを割り当てる(Lとする)
2.2
元画像からその画素を削除する(P位置
の画素値を0にする)
2.3
結果画像のP位置の画素値をLにする。
2.4
Pを種スタックに保存する。
種スタック=[ (3, 1) ]
2.新しい種画素が見り、その位置をPとすると、
2.1
新しいラベルを割り当てる(Lとする)
2.2
元画像からその画素を削除する(P位置の画素値を0にする)
2.3
結果画像のP位置の画素値をLにする。
2.4
Pを種スタックに保存する。
→→→→→→→→→→→→→→→→→→→→→→→
・・・・・・・・・・・・・・・・・・・・・・・
→→→○●●●・・・・・・●●・・・・・・・・
・・・1・・・・・・・・・・・・・・・・・・・
・・●●●●●●・・・・・●●●●・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・●●●●・・・・・・●●●●・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・●●●●●●・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・●●・・・・●●・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・●●●●●●・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●・・●●●●・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●・・●●●・・●●・・●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・●●・・●●●・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
種スタック=[ (3, 1) ]
3.種スタックから1個の種位置を取り出して、元画像のその位置の上下左右の
画素をチェックし、画素値が1の画素であると、
3.1
元画像のからその画素を削除する(その画素値を0にする)
3.2
結果画像のその位置の画素値をLにする。
3.3
その位置を種スタックに保存する。
→→→→→→→→→→→→→→→→→→→→→→→
・・・・・・・・・・・・・・・・・・・・・・・
→→→○○●●・・・・・・●●・・・・・・・・
・・・11・・・・・・・・・・・・・・・・・・
・・●○●●●●・・・・・●●●●・・・・・・
・・・1・・・・・・・・・・・・・・・・・・・
・・・●●●●・・・・・・●●●●・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・●●●●●●・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・●●・・・・●●・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・●●●●●●・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●・・●●●●・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●・・●●●・・●●・・●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・●●・・●●●・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
種スタック=[ (4, 1) (3, 2) ]
4.種スタックが空になるまで、3の処理を繰り返して行う。
→→→→→→→→→→→→→→→→→→→→→→→
・・・・・・・・・・・・・・・・・・・・・・・
→→→○○○○・・・・・・●●・・・・・・・・
・・・1111・・・・・・・・・・・・・・・・
・・○○○○○○・・・・・●●●●・・・・・・
・・111111・・・・・・・・・・・・・・・
・・・○○○○・・・・・・●●●●・・・・・・
・・・1111・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・●●●●●●・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・●●・・・・●●・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・●●●●●●・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●・・●●●●・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●・・●●●・・●●・・●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・●●・・●●●・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
種スタック=[ ]
5.1の処理を行う。
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・○○○○・・・・・・○○・・・・・・・・
・・・1111・・・・・・22・・・・・・・・
・・○○○○○○・・・・・○○○○・・・・・・
・・111111・・・・・2222・・・・・・
・・・○○○○・・・・・・○○○○・・・・・・
・・・1111・・・・・・2222・・・・・・
・・・・・・・・・・・・・○○○○○○・・・・
・・・・・・・・・・・・・222222・・・・
・・・○○・・・・○○・・・・・・・・・・・・
・・・33・・・・33・・・・・・・・・・・・
・・・・○○○○○○○・・○○○○○○・・・・
・・・・3333333・・444444・・・・
・・・・○○・・○○○○・・○○○○○○・・・
・・・・33・・3333・・444444・・・
・・・・○○○・・○○○・・○○・・○○・・・
・・・・333・・333・・44・・44・・・
・・・・○○○○○○○・・・○○・・○○○・・
・・・・3333333・・・44・・444・・
・・・・○○○○○○○・・・○○○○○○・・・
・・・・3333333・・・444444・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
種スタック=[ ]
2値画像の連結性
連結性を失わずに,領域の輪郭線の画素を削ることにより,領域を細くする.
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 1 1 0 0 0 1
0 1 1 1 0 0 0 1
0
1 1 1 1
0 0 1 1 1
0 0 0 1 1
1
0 0 0
0 0 0 0 0
0
0 0
1 1 0
1 1 0
1 1 0
0 1 1 1 1 0
1 1 1 1 0 0
1 1 1 0 0 0
1 1 0 0 0 0
0 0 0 0 0 0
=境界線上の画素
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 1 0 0 0
0 0 1 1 0 0
0 0 0 1 1 0
0 0 0
0 0 0
0 0 1
0 0 1
0 1 1
0 0
0 0
0 0
0 0
0 0
1 1 0 0 0
0 0 0 0 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
細くなった領域