C言語による画像処理入門:グレースケール化処理

カラー画像のグレースケール化処理

元画像
グレースケール処理後の画像

左の写真は24ビットのカラー写真。これを、グレースケール化処理することにより、
 白黒の右の写真の様になる。
 この写真を画像処理使うことによって、計算が効率よく出来る様になる。

 原 理

もっとも単純なグレースケール化処理は次の式の様なRGB値の平均を取る方法です。

出力輝度 = ( R + G + B ) ÷ 3

ただし、この式を用いて処理を行うと青色であった部分が明るく感じたり、緑色だった部分が暗く感じる画像となって違和感のある画像となってしまいます。

このようにならないために、NTSC加重平均法と呼ばれる方法を用います。

それが、次の式になります。

 
出力輝度 = 0.298912 × R + 0.586611 × G + 0.114478 × B

このNTSC加重平均法を使うことで全体が同じ明るさになり、自然な画像になります。

課題:

サンプルプログラムはRGB値の平均をとる方法で書かれています。

これをNTSC加重平均法になおして、違いを見比べてみてください。
 ※入力する出力輝度の式は 0.3 × R + 0.59 × G + 0.11 × B でやると良い。