Dip-grayscale-to-rgb-conversion

提供:Dev Guides
移動先:案内検索

グレースケールからRGBへの変換

画像タイプのチュートリアルで、RGBカラーモデルとグレースケール形式を既に定義しています。 次に、カラー画像をグレースケール画像に変換します。 変換するには2つの方法があります。 どちらにもそれぞれ長所と短所があります。 メソッドは次のとおりです。

  • 平均法 *加重法または光度法

平均法

平均法は最も簡単な方法です。 あなたはちょうど3色の平均を取る必要があります。 RGB画像なので、gにbを加えてrを追加し、それを3で割って目的のグレースケール画像を取得することを意味します。

この方法で行われます。

グレースケール=(R + G + B/3)

例えば:

rgb

上記の画像のようなカラー画像があり、平均法を使用してグレースケールに変換する場合。 次の結果が表示されます。

rgb_gray

説明

確かなことは、元の作品に何かが起こるということです。 これは、平均的な方法が機能することを意味します。 しかし、結果は予想通りではありませんでした。 画像をグレースケールに変換したかったのですが、これはかなり黒い画像であることが判明しました。

問題

この問題は、3つの色の平均を取るために発生します。 3つの異なる色には3つの異なる波長があり、画像の形成に独自の寄与があるため、平均法を使用して平均的に行われるのではなく、その寄与に従って平均を取る必要があります。 今私たちがやっていることはこれです、

赤の33%、緑の33%、青の33%

それぞれの33%を使用しています。つまり、各部分は画像内で同じ貢献をしています。 しかし、実際にはそうではありません。 これに対する解決策は、光度法によって与えられました。

加重法または光度法

平均的な方法で発生する問題を見てきました。 加重法には、この問題の解決策があります。 赤い色は3色すべての波長よりも長いので、緑は赤い色よりも波長が短いだけでなく、緑も目に優しい効果を与える色です。

つまり、赤色の寄与を減らし、緑色の寄与を増やし、これら2つの間に青色の寄与を入れる必要があります。

したがって、形成される新しい方程式は次のとおりです。

新しいグレースケール画像=((0.3* R)(0.59 *G)(0.11* B))。

この式によると、赤は30%を、緑は59%を寄与し、これは3色すべてで大きく、青は11%を寄与しています。

この方程式を画像に適用すると、次のようになります

元の画像:

rgb

グレースケール画像:

weighted_gray

説明

ここでわかるように、画像は現在、加重法を使用してグレースケールに適切に変換されています。 平均法の結果と比較すると、この画像はより明るくなっています。