Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

im2gray

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

    説明

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

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

    すべて折りたたむ

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

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

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

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

    I = im2gray(RGB);

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

    figure;
    imshow(I);

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

    入力引数

    すべて折りたたむ

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

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

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

    出力引数

    すべて折りたたむ

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

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

    ヒント

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

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

    アルゴリズム

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

    0.2989 * R + 0.5870 * G + 0.1140 * B 
    

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

    関数 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
    

    拡張機能

    参考

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

    R2020b で導入