Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

im2gray

将 RGB 图像转换为灰度图像

    说明

    示例

    I = im2gray(RGB) 将指定的真彩色图像 RGB 转换为灰度强度图像 Iim2gray 函数接受灰度图像作为输入,并原样返回它们。

    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×n×3 数值数组。im2gray 还接受 m×n 数值数组(灰度图像)并原样返回它们。

    如果已安装 Parallel Computing Toolbox™,则 RGB 也可以是 gpuArray

    数据类型: single | double | uint8 | uint16

    输出参数

    全部折叠

    灰度图像,以 m×n 数值数组形式返回。如果 im2gray 的输入是灰度图像,则输出图像 I 与输入图像相同。

    如果已安装 Parallel Computing Toolbox,则 I 也可以是 gpuArray。

    提示

    • im2gray 函数与 rgb2gray 基本相同,不同之处是它可以接受灰度图像作为输入并原样返回它们。如果输入图像是灰度图像,则 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 
    

    这些权重与 rgb2ntsc (Image Processing Toolbox) 函数用于计算 Y 分量的权重相同。

    在舍入到小数点后三位之后,im2gray 函数中用来计算灰度值的系数与 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 中推出