画像処理画像処理
グレースケール; Gray Scale

概要
グレースケールは画像処理の一つで、画像を白黒にする処理である。

変換
変換前の色を\(R, G, B\)としたとき変換後の輝度\(V\)は以下で表現される。(sRGB色空間のとき)

\(\quad V = 0.2126 R + 0.7152 G + 0.0722 B \)

この式の係数はxy色度図のRGB単位光のy座標を加重平均したときの係数が元になっている。

xy色度図(Phonon様のソフト"ColorAC"にて作成)
xy色度図

結果

pepper
pepper_grayscale

ソースコード

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グラフィックおよびその入出力
フィルタ
グレースケール
ガウシアンフィルタ
バイラテラルフィルタ
モーションブラーフィルタ
微分フィルタ
ソーベルフィルタ
鮮鋭化フィルタ

ライブラリライブラリ
確率統計確率統計
線形代数線形代数
幾何学幾何学
最適化最適化
微分方程式微分方程式
画像処理画像処理
補間補間
機械学習機械学習
クラスタリングクラスタリング
パズルゲーム・パズル
未分類未分類