RGB画像をグレースケールに変換する方法
1. 概要
このチュートリアルでは、 RGB画像をグレースケールに変換する方法について説明します。最初にカラーモデルを簡単に紹介し、次に3つの変換方法を紹介します。例。
2. カラーモデル
色を数値として表すことは、多くのアプリケーションで必要な手順です。 これをする、
これらの値に加えて、これらのモデルは、色を生成するためにこれらのコンポーネントを解釈する方法の説明も提供します。
2.1. RGB
最もよく知られているカラーモデルはRGBで、これは赤-緑-青の略です。 名前が示すように、このモデルは、赤、緑、青の個々の値を使用して色を表します。 RGBモデルは、世界中のほぼすべてのデジタル画面で使用されています。
具体的には、色は、赤、緑、青の0〜255の3つの整数値を使用して定義されます。ここで、ゼロ値は暗いことを意味し、255の値は明るいことを意味します。 値が与えられると、これらの3つの基本色をそれらの値で重み付けして混合すると、最終的な色が定義されます。
3つの色を均等に混合すると(RGB =(255、255、255))、すべての色がない場合(RGB =(0、0、0))は黒を意味しますが、白になります。以下に、モデルが記述できるすべての異なる色を確認できるRGB座標系を示します。
2.2. グレースケール
グレースケールは、明度という1つのコンポーネントのみを使用して色を定義するため、最も単純なモデルです。明度の量は、0(黒)から255(白)の範囲の値を使用して記述されます。
一方では、グレースケール画像はRGBよりも少ない情報を伝達します。 ただし、グレースケール画像を使用すると必要なスペースが少なくなり、特に複雑な計算を処理する場合は高速になるため、画像処理では一般的です。
以下に、グレースケールモデルで記述できるすべての色を示します。
2.3. その他
ユースケースに応じて、何年にもわたって多数のモデルが提案されてきました。 たとえば、 CMYK モデルは印刷に使用され、シアン、マゼンタ、イエロー、ブラックの値を使用して色を記述します。 HSLとHSVは、人間の視覚が色を認識する方法とより一致しているため、アーティストが使用する2つの色です。 基本的なコンポーネントは、それぞれ色相、彩度、明度または値です。
3. RGBをグレースケールに変換する
それでは、このチュートリアルの主な目的である、画像をRGBからグレースケールに変換する方法について説明しましょう。 これらのモデルは色覚(原色と明度)のさまざまな解釈に基づいているため、変換の完全な方法はありません。以下のような一般的に使用される方法がいくつかあります。
3.1. 明度法
非常に簡単な方法は、最大値と最小値を持つコンポーネントの平均値を取得することです:
1つのRGBコンポーネントが使用されていないため、この方法は非常に深刻な弱点を示していることが簡単にわかります。私たちの目が知覚する明度は、3つの基本色すべてに依存するため、これは間違いなく問題です。
3.2. 平均的な方法
もう1つの方法は、 3つのコンポーネント(赤、緑、青)の平均値をグレースケール値として使用することです。
現在、すべてのコンポーネントを考慮に入れていますが、平均的な方法では、各コンポーネントに同じ重みが割り当てられるため、問題があります。人間の視覚に関する調査に基づくと、目は各色に異なる反応を示すことがわかっています。マナー。 具体的には、私たちの目は緑、赤、最後に青に敏感です。したがって、上記の式の重みは変化するはずです。
3.3. 光度法
最良の方法は、以前の方法の問題をうまく解決する光度法です。
前述の観察に基づいて、コンポーネントの加重平均を取る必要があります。
4. 例
最後に、これら3つの方法を画像に適用して、結果をさらに説明しましょう。 以下に、明度、平均、および明度の方法を適用してRGB画像をグレースケールに変換した結果を示します。
予想通り、明度法は入力画像の明度を完全に捉えることができないため、最悪です。 他の2つの中で、平均的な方法ではより暗いグレースケール画像が生成されるため、明度が最適です。
5. 結論
このチュートリアルでは、RGB画像をグレースケールに変換する方法について説明しました。 まず、さまざまなカラーモデルについて説明し、次に3つの変換方法と例を示しました。