matlab rgb2gray_基于MATLAB的彩色图像转灰度图像

本文介绍了图像的基本构成单元——像素及其与颜色的关系,并详细解释了如何通过RGB模型到YUV模型的转换来将彩色图像转换为灰度图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

bba3e86d0da8974a475342b9cbe35148.png

图像是怎样构成的?

像素对于我们来说并不陌生,在我们购买手机的时候像素的高低是我们参考的重要标准之一。其实任意一幅图像都是由非常多个像素点构成,而每一个像素点都能表示任意一种颜色,我们可以将像素点理解成最小的图像单位。在初中物理中我们曾学习到任意一种颜色都可以由三原色(红绿蓝)组合而成,事实上每一个像素点也是由R、G、B值的不同组合而成。

25fbae3974e5117b8503e270ecca60a0.png

在RGB彩色模型中表示的图像由三个分量图像组成,每种原色一幅分量图像。利用MATLAB对图像进行读取,我们可以看到该图像RGB的数据为256*256*3 uint8,其中256*256表示长和宽的像素个数,3表示红绿蓝三个分量图像,uint8,表示每个分量图像(R、G、B)的像素点值的位宽为8比特,即可表示0-255的范围。

9803c61db2375cae6b232ad0a7806961.png

彩色图像是如何转换为灰度图像的?

灰度数字图像是每个像素只有一个采样颜色的图像,通常显示为从最暗黑色到最亮的白色的灰度。前面我们已经知道了每个分量图的像素点为8bit,可表示0-255的范围,其中0表示黑色,255表示白色。因而我们可以通过RGB模型到YUV模型(亮度-色度模型,“Y”表示明亮度,“U”和“V”则是色度、浓度)的转换,利用数学计算,将RGB三通道转化为YUV模型中的Y通道(亮度)从而将彩色图像转换成灰度图像。转换公式如下

b6dac5304eee1b63d2e11897562353b0.png

MATLAB代码实现

通常我们可以使用两种方法将彩色图像转化为灰度图像,一种是使用MATLAB自带的rgb转灰度指令rgb2gray,另一种则是利用转换公式进行计算,以下是源代码。

050b0b37ceab69e4446fb1848d5003ac.png

我们来看看代码运行后的效果图

c5e586a3b2e8c21427faba925ff706f2.png

现在我们可以知道如美图秀秀等修图软件添加滤镜的效果其实就是在对图像的RGB值进行处理,而这一点MATLAB也能够做到。

参考资料:

数字图像处理_第三版_中_冈萨雷斯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值