第6回CADセミナー@岐阜 演習6/画像の2値化
画像の2値化を取り扱います.
画像の2値化(にちか)とは,画像を白と黒の2つに分ける処理で,
画像中の物体の領域分割のために用いられる基本的な処理です.
画像の2値化は,
- しきい値の決定
- 2値化処理の実行
の2段階で行われます.
処理自体は簡単ですが,目的に合わせた妥当なしきい値を決めることは,
一般には非常に困難です.
演習は,以下の2つを行います.
以上を行うプログラムを作成し,処理結果の8ビット画像を得ることを目的とします.
表示系のプログラムは扱わず,前の演習同様,変換処理後に画像表示プログラムで表示します.
画像の2値化
この演習では,画像の2値化を実行します.
最初は,2値化するしきい値をscanf文で入力して,その出力結果を観察します.
main.cはこちら
しきい値を50, 100, 150, 200と変化させてみて,結果がどう変わるか
確認してください.
コンパイル例:gcc proc main.c
実行例:proc chest.raw 512 512 out100.raw
つぎに,入力画像の平均値で2値化するプログラムを作成します.
main.cはこちら
以上,画像の2値化処理例を示しました,以下,まとめます.
- 2値化処理を行った:画像を白と黒に分ける処理である.
- しきい値を決める必要がある:どこで白と黒に分けるのかを決めること.
- しきい値を決めるのに手入力,平均値をつかった:ほんとは,目的にあったしきい値を決める.
- しきい値をかえると画像は全然変わる.
という演習を行いました.
さらに進めるためには,
- 画像の中央値で2値化する
- 画像の最頻値で2値化する
などがあります.また,多バイト長の画像についても演習する必要があります.