Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

rgb2gray

RGB イメージまたはカラーマップをグレースケールに変換

説明

I = rgb2gray(RGB) は、トゥルーカラー イメージ RGB をグレースケールイメージ I に変換します。関数 rgb2gray は、輝度を保持したまま色相情報と彩度情報を削除することによって、RGB イメージをグレースケールに変換します。Parallel Computing Toolbox™ がインストールされている場合は、この rgb2gray による変換を GPU で実行できます。

newmap = rgb2gray(map) は、map に対応するグレースケール カラーマップを返します。

すべて折りたたむ

RGB イメージを読み取って表示し、グレースケールに変換します。

サンプル ファイル peppers.png を読み取り、RGB イメージを表示します。

RGB = imread('peppers.png');
imshow(RGB)

Figure contains an axes object. The axes object contains an object of type image.

RGB イメージをグレースケール イメージに変換して表示します。

I = rgb2gray(RGB);
figure
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

RGB カラーマップを使用したインデックス付きイメージを読み取ります。その後、カラーマップをグレースケールに変換します。

サンプル ファイル corn.tif を読み取ります。このファイルは RGB カラーマップを使用したインデックス付きイメージです。

[X,map] = imread('corn.tif');

イメージを表示します。

imshow(X,map)

Figure contains an axes object. The axes object contains an object of type image.

RGB カラーマップをグレースケール カラーマップに変換してイメージを再表示します。

newmap = rgb2gray(map);
imshow(X,newmap)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

トゥルーカラー イメージ。m×n×3 の数値配列として指定します。

Parallel Computing Toolbox がインストールされている場合は、RGB を gpuArray にすることもできます。

データ型: single | double | uint8 | uint16

カラーマップ。値の範囲が [0, 1] の c 行 3 列の数値行列として指定します。map の各行は、カラーマップの各色を構成する赤、緑、青の成分を指定する RGB 3 成分です。

Parallel Computing Toolbox がインストールされている場合は、map を gpuArray にすることもできます。

データ型: double

出力引数

すべて折りたたむ

グレースケール イメージ。m 行 n 列の数値配列として返されます。

Parallel Computing Toolbox がインストールされている場合は、I を gpuArray にすることもできます。

グレースケール カラーマップ。値の範囲が [0, 1] の c 行 3 列の数値行列として返されます。newmap の 3 つの列が同一であるため、map の各行は単一の強度値を指定します。

Parallel Computing Toolbox がインストールされている場合は、newmap を gpuArray にすることもできます。

データ型: double

ヒント

  • 入力イメージがグレースケール イメージである場合、関数 rgb2gray はエラーを返します。グレースケール イメージを入力として受け入れることができ、変更せずに返すことを除いて、関数 im2grayrgb2gray と同じです。関数 im2gray を使用する場合は、次の条件付きステートメントのようなコードは不要になります。

    if ndims(I) == 3
        I = rgb2gray(I);
    end

アルゴリズム

rgb2gray は、R 成分、G 成分、B 成分の重み付き和を計算することによって、RGB 値をグレースケール値に変換します。

0.2989 * R + 0.5870 * G + 0.1140 * B 

これらは Y 成分を計算するために関数 rgb2ntsc (Image Processing Toolbox) で使用される重みと同じす。

rgb2gray のグレースケール値の計算に使用する係数は、小数点以下 3 桁に丸めてから Rec.ITU-R BT.601-7 で輝度 (E'y) を計算する場合に使用する係数と同一です。

Rec.ITU-R BT.601-7 は次の式を使用して E'y を計算します。

0.299 * R + 0.587 * G + 0.114 * B

拡張機能

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

参考

| | (Image Processing Toolbox) | (Image Processing Toolbox) | | (Image Processing Toolbox)