RGB图像转化为灰度图原理

1 原理

利用MATLAB对RGB图像进行读取:

img=imread('蒙娜丽莎.jpg');

RGB图像转化为灰度图原理_RGB转灰度图

RGB图像转化为灰度图原理_像素点_02

可以知道存储RGB图像数据为 256 × 256 × 3 u i n t 8 256\times256 \times3\quad uint8 256×256×3uint8,其中 256 × 256 256\times256 256×256表示长和宽的像素个数, 3 3 3表示红绿蓝三个分量图像, u i n t 8 uint8 uint8表示每个分量图像(R、G、B)的像素点值的位宽为8比特,即可表示0-255的范围。

在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像,如下图所示。

RGB图像转化为灰度图原理_RGB转灰度图_03

图片:https://zhuanlan.zhihu.com/p/57447773

灰度数字图像是每个像素只有一个采样颜色的图像,通常显示为从最暗黑色到最亮的白色的灰度。因此我们可以将RGB模型转化为YUV模型(亮度-色度模型,“Y”表示明亮度,“U”和“V”则是色度、浓度)其中的Y通道(亮度)就是灰度图像,像素点值的位宽依然为8bit,可表示0-255的范围,其中0表示黑色,255表示白色。转换公式如下:

RGB图像转化为灰度图原理_灰度图_04

Y即为我们所要的灰度图。

2 MATLAB实现

imgGray=rgb2gray(img);
imshow(imgGray)

RGB图像转化为灰度图原理_RGB转灰度图_05