2値化処理

画像処理に関する情報発信として2値化処理についてご紹介します。

同一トピックの「ノイズ軽減処理」と併せて、今回紹介する「2値化」は画像から目的とする物体を取り出す (抽出する) のに極めて重要です。

例えば下の図。

白い背景に黒い点が規則正しく並んでいます。

例えば、この点の数や面積を正確に測りたいな...と思った時、手動で測るよりも画像処理を用いた方が客観的なのは言うまでもありません。

画像処理の最初のステップとして、「背景: この画像だと白い領域」と「前景: この画像だと黒い点」を区別する2値化を行ないます。

2値化とは、ある明るさを基準として、それより明るければ白、暗ければ黒に分ける処理で、最終的に白黒画像を生み出します。

上記の画像をある明るさを基準に2値化すると、下のようになります。

背景は真っ白、点は真っ黒の白黒画像になりました。

しかし困ったことに、原画像を見てみると、背景よりは黒いけれど薄い点がいくつかあります。それらも含めてうまく取り出すにはもう1工夫必要なようです。

例えば、基準を下げて、薄い点でも取り出せるようにしたいですね。

しかし、こまったコトはまだあります。実はこの画像、照明条件などの影響で、全体的に左側が暗く、右側が明るいのです。

そのため、単純に基準を下げると、下のように背景まで取り出してしまいます。

これだと、全部の点を取り出すことは困難です...。

各点を取り出せるよう、「ノイズ軽減処理」を組み合わせてみましょう。

実はこの背景のムラは、特殊なノイズの1つにあげられ、画像処理によって軽減することができます。

前回の説明よりも少し難しい処理ですが (いずれ機会があればご紹介したいです) 、下のように周期的なノイズを軽減できます。

(少しわかりづらいかもしれませんが、左右の背景で明るさのムラが軽減されています)

ノイズ軽減処理を施した画像で、ある明るさに基づいて2値化すると、下のようになります。

完璧ではありませんが、薄い点も取り出すことに成功しました。

研究の現場では、もう少し複雑な画像処理を施して、客観的かつ定量的な計測につなげていきます。

もしかしたら、こんなに複雑な処理なら手動で計測した方が早いと思うかもしれません。確かに28個の点なら、手動の方が早いかもしれません。

しかし、点が100個あるいは1000個あればどうでしょうか?
筆者は100個も手動で計測するほど忍耐強くありませんし、正確に測る自信もありません。

やはり、画像処理で客観的かつ正確 (かつ高速) に計測する方が信頼に足る研究に繋るのだと思います。

<まとめ>
画像から目的の領域を取り出すには、ノイズ軽減処理と2値化処理が有効。