Main Content

im2gray

RGB イメージをグレースケールに変換

R2020b 以降

    説明

    I = im2gray(RGB) は指定されたトゥルーカラー イメージ RGB をグレースケール強度イメージ I に変換します。関数 im2gray はグレースケール イメージを入力として受け入れ、変更せずに返します。

    関数 im2gray は、輝度を保持したまま色相情報と彩度情報を削除することによって、RGB イメージをグレースケールに変換します。

    すべて折りたたむ

    トゥルーカラー (RGB) イメージをファイルからワークスペースに読み取って表示します。

    RGB = imread('example.tif');
    imshow(RGB)

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

    I = im2gray(RGB);

    変換されたグレースケール イメージを表示します。

    imshow(I)

    入力引数

    すべて折りたたむ

    トゥルーカラー イメージ。m×n×3 の数値配列として指定します。im2gray は m 行 n 列の数値配列 (グレースケール イメージ) も受け入れ、変更せずに返します。

    関数 im2gray は、データ型が double および single のトゥルーカラー イメージについて、値の範囲が [0, 1] であると想定します。イメージに [0, 1] の範囲外の値がある場合は、関数 rescale を使用して想定される範囲に値を再スケーリングできます。

    Parallel Computing Toolbox™ がインストールされている場合は、RGBgpuArray オブジェクトにすることもできます。

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

    出力引数

    すべて折りたたむ

    グレースケール イメージ。m 行 n 列の数値配列として返されます。im2gray への入力がグレースケール イメージである場合、出力イメージ I は入力イメージと同じになります。

    Parallel Computing Toolbox がインストールされている場合は、IgpuArray オブジェクトにすることもできます。

    ヒント

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

      if ndims(I) == 3
          I = rgb2gray(I);
      end
      
    • 関数 rgb2gray とは異なり、関数 im2gray はカラーマップを入力として受け入れません。カラーマップをグレースケールに変換するには、関数 cmap2gray を使用します。

    アルゴリズム

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

    0.298936021293775 * R + 0.587043074451121 * G + 114020904255103 * B 
    

    関数 im2gray のグレースケール値の計算に使用する係数は、小数点以下 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
    

    拡張機能

    バージョン履歴

    R2020b で導入

    参考

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