colorFilterを使って画像をグレースケールにする方法はいくつかあると思いますが、
今回はRGBを単純に平均する場合とNTSC重み付けを行い平均する場合、実際どの程度違いがでるか2つの写真で実験してみます。
単純平均
colorFilter.matrix = [1/3, 1/3, 1/3, 0, 0, 1/3, 1/3, 1/3, 0, 0, 1/3, 1/3, 1/3, 0, 0, 0, 0, 0, 1, 0];
NTSC係数による加重平均
colorFilter.matrix = [0.2990, 0.5866, 0.1145, 0, 0,0.2990, 0.5866, 0.1145, 0, 0, 0.2990, 0.5886, 0.1145, 0, 0, 0 , 0 , 0, 1, 0];
元画像 (左側が単純平均、右側がNTSC係数による加重平均)
ひまわりの写真をグレースケールにしたswf
元画像 (左側が単純平均、右側がNTSC係数による加重平均)
ハイビスカスの写真をグレースケールににしたswf
2枚とも右側の写真のほうが自然な感じがしますね。黄系は特に影響をうけているようです。
グレースケール関する情報は以下のサイトを参考にさせていただきました。
http://ofo.jp/osakana/cgtips/grayscale.phtml
今回はRGBを単純に平均する場合とNTSC重み付けを行い平均する場合、実際どの程度違いがでるか2つの写真で実験してみます。
単純平均
colorFilter.matrix = [1/3, 1/3, 1/3, 0, 0, 1/3, 1/3, 1/3, 0, 0, 1/3, 1/3, 1/3, 0, 0, 0, 0, 0, 1, 0];
NTSC係数による加重平均
colorFilter.matrix = [0.2990, 0.5866, 0.1145, 0, 0,0.2990, 0.5866, 0.1145, 0, 0, 0.2990, 0.5886, 0.1145, 0, 0, 0 , 0 , 0, 1, 0];
元画像 (左側が単純平均、右側がNTSC係数による加重平均)
ひまわりの写真をグレースケールにしたswf
元画像 (左側が単純平均、右側がNTSC係数による加重平均)
ハイビスカスの写真をグレースケールににしたswf
2枚とも右側の写真のほうが自然な感じがしますね。黄系は特に影響をうけているようです。
グレースケール関する情報は以下のサイトを参考にさせていただきました。
http://ofo.jp/osakana/cgtips/grayscale.phtml