グレースケール; Gray Scale
概要
グレースケールは画像処理の一つで、画像を白黒にする処理である。
変換
変換前の色を\(R, G, B\)としたとき変換後の輝度\(V\)は以下で表現される。(sRGB色空間のとき)
\(\quad V = 0.2126 R + 0.7152 G + 0.0722 B \)
この式の係数はxy色度図のRGB単位光のy座標を加重平均したときの係数が元になっている。
xy色度図(Phonon様のソフト"ColorAC"にて作成)
結果
ソースコード
GraphicRGB src_graph, dst_graph;
ImageIO.Read(out src_graph, "graph/pepper.png");
Func<RGB, RGB> grayscale = (c) => {
double gray = 0.2126 * c.R + 0.7152 * c.G + 0.0722 * c.B;
return new RGB(gray, gray, gray, c.A);
};
dst_graph = Filtering.ColorFiltering(src_graph, grayscale);
ImageIO.Write(dst_graph, "graph/pepper_grayscale.png");
関連項目
RGB空間
RGBグラフィックおよびその入出力
フィルタ
グレースケール
ガウシアンフィルタ
バイラテラルフィルタ
モーションブラーフィルタ
微分フィルタ
ソーベルフィルタ
鮮鋭化フィルタ