エッジの検出

2値図形の変換
収縮と膨張(拡大と縮小)
収縮:
1の領域の境界(線上の)要素を取り除く処理
侵食、縮小とも呼ばれる
具体的に:
入力画像中の全ての1の画素に対して、
① もし、その全ての近傍(4近傍、或いは8近傍)画
素も1であれば、出力画像の対応画素を1に、
② さもなければ、出力画像の対応画素を0にする
効果: 画像のノイズなどによる、
● 細い連結を切断する
● 孤立点を消す
・・・・・・・・・・・・・・・・・・・・・・・
・・・●●・・・・●●・・・・・・・・・・・・
・・・・●●●●●●●・・●●●●●●・・・・
・・・・●●●●●●●●・・●●●●●●・・・
・・・・●●●●・●●●・・●●●●●●・・・
・・・・●●●●●●●・・・●●●●●●●・・
・・・・●●●●●●●・・・●●●●●●・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・××・・・・××・・・・・・・・・・・・
・・・・×××××××・・××××××・・・・
・・・・×●●●×●●×・・×●●●●×・・・
・・・・×●●×・×●×・・×●●●●×・・・
・・・・×●●●×●×・・・×●●●●●×・・
・・・・×××××××・・・××××××・・・
・・・・・・・・・・・・・・・・・・・・・・・
膨張:
1の領域の境界(線上の)要素を“膨張し
た大きい点”におよって置換える処理
拡張、拡大、伝播とも呼ばれる
具体的に:
入力画像中の全ての1の画素に対して、
出力画像の対応画素とその近傍(4近傍、或いは8近
傍)の画素を1にする
効果: 画像のノイズなどによる
誤って切断した(孤立した)領域を連結させる
穴を埋める
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・・・・・・・・・・
・・・・●●●●●●●●・・・・・・・・・・・
・・・・●●●●・●●●・・・・・・・・・・・
・・・・●●●●●●●・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・・・・・・・・・・
・・・●●●●●●●●●・・・・・・・・・・・
・・・●●●●●●●●●●・・・・・・・・・・
・・・●●●●●●●●●●・・・・・・・・・・
・・・●●●●●●●●●・・・・・・・・・・・
・・・・●●●●●●●・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
距離変換と骨格
距離変換とは、2値画像の
1の画素の画素値を、
その画素から最も近い0の画素までの距離
に置換える
変換のことである。
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・●●●●●●●・・・・・・・・・・・・
・・・・●●●●●●●●・・・・・・・・・・・
・・・・●●●●・●●●・・・・・・・・・・・
・・・・●●●●●●●・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・
00000000000000000000000
00000000000000000000000
00001111111000000000000
00001222222100000000000
00001221012100000000000
00001111111000000000000
00000000000000000000000
00000000000000000000000
逐次型距離変換
1.距離の定義
(x, y)と(x’, y’)との間の距離は次のように定
義する。
d=| x - x’ | + | y - y’ |
2.入力画像の1の画素の画素値を十分大き
い値にする
・・・・・・・・・・・・・・・
・・・●●●・・・・・・・・・
・・●●●●●●●●・・・・・
・・●●●●●●●●●●・・・
・・●●●●●●●●●●●・・
・・●●●・・・●●●●●・・
・・・・・・・・●●●●・・・
・・・・・・・・・・・・・・・
000000000000000
000888000000000
008888888800000
008888888888000
008888888888800
008880008888800
000000008888000
000000000000000
逐次型距離変換
3.左から右へ画素を一個ずつ、
そして上から下へ、一行ずつ
次のように画素値を更新する
現在の画素の画素値: I(x,y)
左の画素値+1:
I(x-1, y) + 1
上の画素値+1:
I(x, y-1) + 1
の中の最小の値を現在の画素値とする
I(x,y)=min{I(x,y), I(x-1,y)+1, I(x,y-1)+1}
000000000000000
000888000000000
008888888800000
008888888888000
008888888888800
008880008888800
000000008888000
000000000000000
000000000000000
000111000000000
001222111100000
001233222211000
001234333322100
001234444433200
000000001234000
000000000000000
逐次型距離変換
4.3と同じの処理ですが、順番は3と
逆で、
右から左へ画素を一個ずつ、
そして下から上へ、一行ずつ
次のように画素値を更新する
現在の画素の画素値: I(x,y)
右の画素値+1:
I(x+1, y) + 1
下の画素値+1:
I(x, y+1) + 1
の中の最小の値を現在の画素値とする
I(x,y)=min{I(x,y), I(x+1,y)+1, I(x,y+1)+1}
000000000000000
000111000000000
001222111100000
001233222211000
001234333322100
001234444433200
000000001234000
000000000000000
000000000000000
000111000000000
001222111100000
001233222211000
001222223322100
001111112222100
000000001111000
000000000000000
距離変換の結果の応用
1.骨格(軸)の抽出
中心軸の位置+太さ の情報を持っている
→ 対象の形状がわかる