【画像処理】二値化 / 領域抽出 / 細線化

  ■ はじめに

 ラスタベクタ変換に調べていたところ、前処理として、以下が必要らしい。
~~~~~~~~~~~~~~
【1】 二値化(にちか)
【2】 領域抽出
【3】 細線化(さいせんか)
~~~~~~~~~~~~~~

また、文字認識やパターン認識の前処理として多く使われるので、メモ。

 

  【1】 二値化

Binarization
 * 画像を白か黒にする処理
  => 次に、画像のどの色(閾値)で、白にするか黒にするかが問題となってくる

  閾値の決めるアルゴリズム

a) 閾値指定
 * 決め打ちで閾値を決める
b) Pタイル法
 * 対象の占める画素数が既知の時、画素が低いところから積算して決める
c) 判別分析法(大津の二値化)
 * クラス間分散とクラス内分散により求められる分離法が最大となる閾値をとる
d) モード法
 * 山と山の間の谷底を閾値とする

 

  【2】 領域抽出

 * 画像の領域を分割する処理
 * 対象の領域を切り出して他の領域と区別すること

 

  【3】 細線化

Thinning / Skeletonization
 * 二値画像を幅1ピクセルの線画像に変化する処理

  閾値の決めるアルゴリズム

a) Hilditch の方法
https://qiita.com/TatsuyaOGth/items/45965e1632f41f3eb139
b) 田村 の方法
http://imagingsolution.blog.fc2.com/blog-entry-138.html
c) Zhang-Suen の方法
https://qiita.com/hrs1985/items/7751d4b5241d5c314a6d

 

  関連記事

  【Java】二値画像の細線化

https://blogs.yahoo.co.jp/dk521123/37816017.html

  【C#】二値化

https://blogs.yahoo.co.jp/dk521123/38086531.html