rgb2gray
处理图像的函数
rgb2gray是matlab内部一种处理图像的函数,通过消除图像色调和饱和度信息同时保留亮度实现将RGB图像或彩色图转换灰度图像,即灰度化处理的功能,调用这个功能的格式是I = rgb2gray(RGB),意思是将真彩色图像RGB转换为灰度强度图像I 。
功能
Matlab函数rgb2gray,
在matlab命令窗口中键入doc rgb2gray或help rgb2gray可以获得更多关于该函数的帮助信息。
调用格式
I = rgb2gray(RGB)
newmap= rgb2gray(map)
调用格式说明
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
参考资料
最新修订时间:2023-02-20 18:16
目录
概述
功能
调用格式
调用格式说明
函数算法
参考资料