rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和
饱和度信息同时保留亮度实现将
RGB图像或彩色
图转换为
灰度图像,即
灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将
真彩色图像RGB转换为灰度强度图像I 。
功能
Matlab函数rgb2gray,
在matlab命令窗口中键入doc rgb2gray或help rgb2gray可以获得更多关于该函数的帮助信息。
调用格式
I = rgb2gray(RGB)
调用格式说明
I = rgb2gray(RGB) 将
真彩色RGB图像转换成灰度图像。(RGB并不发生变化)
newmap= rgb2gray(map) 返回一个灰度
调色板。
函数算法
Matlab中默认采用的是对R、G、B分量进行简单加法的公式:
0.30R+ 0.59G + 0.11B
但是,这个方法对于
Gamma校正的图片(平常所见到的24位真彩色图片均为Gamma校正的图片)并不适用,因为Gamma校正后的分量值不是物理上的功率,不能直接相加,因此,提出一种改进的算法来纠正这一问题。
注意这里的2.2次方和2.2次方根,RGB颜色值不能简单直接相加,而是必须用2.2次方换算成物理
光功率。因为RGB值与功率并非简单的
线性关系,而是
幂函数关系,这个函数的指数称为
Gamma值,一般为2.2,而这个换算过程,称为Gamma校正。
(注意,rgb2ntsc函数也使用相同的权重来计算Y分量)
相关函数
ind2gray,
mat2gray, ntsc2rgb, rgb2ind, rgb2ntsc
程序示例
% 1. 显示RGB真彩色图像
imgrgb = imread('flower.
jpg');%用imread函数将图像读入,并且赋给变量imgrab
figure('Name', '显示真彩色图像')%开一个标题为“显示真彩色图像”的窗口
imshow(imgrgb)%显示真彩色图像imgrab
% 2. 显示灰度图像
imggray = rgb2gray(imgrgb);%调用rab2gray函数,将图像灰度化,赋给一个新的变量imggray
figure('Name', '显示灰度图像')%开一个标题为“显示灰度图像”的窗口
imshow(imggray)%
显示图像灰度图imggray