Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

cmap2gray

将 RGB 颜色图转换为灰度颜色图

自 R2020b 起

    说明

    newmap = cmap2gray(map) 将 RGB 颜色图 map 转换为等效的灰度颜色图 newmap

    示例

    示例

    全部折叠

    将具有颜色图的索引图像加载到工作区中。load 命令返回包含图像数据和颜色图的结构体。查看图像。

    indImage = load('clown.mat');
    figure
    imshow(indImage.X,indImage.map)

    将图像附带的 RGB 颜色图转换为灰度颜色图。

    newmap = cmap2gray(indImage.map);

    用灰度颜色图显示图像。

    figure;
    imshow(indImage.X,newmap)

    输入参数

    全部折叠

    RGB 颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。map 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。

    如果已安装 Parallel Computing Toolbox™,则 map 也可以是 gpuArray 对象。

    数据类型: double

    输出参量

    全部折叠

    灰度颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。newmap 的三列是相同的,因此每行都指定一个强度值。

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

    数据类型: double

    算法

    cmap2gray 函数通过计算 RGB 分量的加权和,将 RGB 值转换为灰度值:

    0.298936021293775 * R + 0.587043074451121 * G + 114020904255103 * B 
    

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

    扩展功能

    C/C++ 代码生成
    使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

    版本历史记录

    在 R2020b 中推出

    另请参阅

    | | | (Image Processing Toolbox)