本日は,2値化画像の細線化.
最近では電車内でもやってる人を見ますね.脳トレの一種でしょうか.
では,その手法を….
まず,黒画素=1,白画素=0とします.
全画素に対して,ラスタスキャン(つまるところ,1ピクセルずつ見ていくわけです)を行い,注目画素中心に,3x3の範囲を観察し,以下の条件を満たした時,その画素を白画素にします.
1.境界上にある黒画素である.
2.白画素に変更しても,連結性が保たれる.
3.端点で無い.
画素値を更新する方法として,逐次法,並列法があります.
逐次法(sequential method)は,更新した画像をそのまま使い,次処理に移るのに対し,
並列法(parallel method)では,消去可能かどうかを検証する検証用画像と,画素値の更新を行う更新用画像を別々に持ち,更新用画像に結果を反映していきます.そして,全画素の処理が終了したら,更新用画像を,次処理の検証用画像とします.
今回は,並列法を用います.
また,サブサイクル1,サブサイクル2を交互に行います.それぞれの挙動は以下.
サブサイクル1 - 右上から,左下に向かいラスタスキャン.
サブサイクル2 - 左下から,右上に向かいラスタスキャン.
そして,ラスタスキャンをしながら,論理フィルタ(logical filter)を用いて,
上記の1,2,3の条件を満たすかどうかを判断します.
(*は0,1どちらでもよいことを意味します.)
サブサイクル1において,消去する場合
サブサイクル1において,消去しない場合
サブサイクル2において,消去する場合
サブサイクル2において,消去しない場合
上のフィルタでは,
“消去する”に当てはまり,かつ,“消去しない”に当てはまらない場合のみ,黒画素(1)を消去(白画素(0)にする)します.
サブサイクル1,サブサイクル2を交互に繰り返し,更新(消去)する画素が無くなった場合,細線化処理を終了します.
例:
Fig.1
この画像を細線化すると,Fig.2のようになります.
Fig.2
こんな感じになります.きれいな細線化では無いですが,ちゃんと出来ています.
次は,細線の特徴点抽出について…
0 件のコメント:
コメントを投稿