Matlab中rgb2gray函数用法

目录

语法

说明

示例

将 RGB 图像转换为灰度图像

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


        rgb2gray函数的功能是将 RGB 图像或颜色图转换为灰度图。

语法

I = rgb2gray(RGB)

newmap = rgb2gray(map)

说明

I = rgb2gray(RGB) 将真彩色图像 RGB 转换为灰度图像 I。rgb2gray 函数通过消除色调和饱和度信息,同时保留亮度,来将 RGB 图像转换为灰度图。如果已安装 Parallel Computing Toolbox™,则 rgb2gray 可以在 GPU 上执行此转换。

newmap = rgb2gray(map) 返回等同于map的灰度颜色图。

示例

将 RGB 图像转换为灰度图像

        读取并显示 RGB 图像,然后将其转换为灰度图。读取示例文件 peppers.png 并显示 RGB 图像。

RGB = imread('peppers.png');
imshow(RGB)

如图所示:

        将 RGB 图像转换为灰度图像并显示图像。

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

如图所示:

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

        读取具有 RGB 颜色图的索引图像。然后将颜色图转换为灰度。读取示例文件 corn.tif,该文件为具有 RGB 颜色图的索引图像。

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

        显示图像。

imshow(X,map)

如图所示:

        将 RGB 颜色图转换为灰度颜色图并重新显示图像。

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

如图所示:

RGB - 真彩色图像
m×n×3 数值数组

        真彩色图像,指定为 m×n×3 数值数组。如果已安装 Parallel Computing Toolbox,则 RGB 也可以是 gpuArray。

map - 颜色图
c×3 数值矩阵

        颜色图,指定为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。map 的每行都是一个三元素 RGB,指定颜色图的单种颜色的红、绿和蓝分量。如果已安装 Parallel Computing Toolbox,则 map 也可以是 gpuArray。

I - 灰度图片
m×n 数值数组

        灰度图像,以 m×n 数值数组形式返回。如果已安装 Parallel Computing Toolbox,则 I 也可以是 gpuArray。

newmap - 灰度颜色图
c×3 数值矩阵

        灰度颜色图,返回为由范围 [0, 1] 内的值组成的 c×3 数值矩阵。newmap 的三列是相同的,因此map的每行都指定一个强度值。如果已安装 Parallel Computing Toolbox,则 newmap 也可以是 gpuArray。

提示

  • rgb2gray 支持使用 MATLAB® Coder™ 生成 C 代码。

算法

        rgb2gray 通过计算 R、G 和 B 分量的加权和,将 RGB 值转换为灰度值:

0.2989 * R + 0.5870 * G + 0.1140 * B 

        这些权重与rgb2ntsc (Image Processing Toolbox) 函数用于计算 Y 分量的权重相同。在舍入到小数点后 3 位之后,rgb2gray中用来计算灰度值的系数与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

  • 36
    点赞
  • 192
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值