ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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)

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

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

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

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

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

イメージを表示します。

imshow(X,map)

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

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

入力引数

すべて折りたたむ

トゥルーカラー イメージ。m x n x 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 では MATLAB® Coder™ を使用した C コードの生成がサポートされています。

アルゴリズム

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

0.2989 * R + 0.5870 * G + 0.1140 * B 

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

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

拡張機能