matlab实现彩色图像灰度化的三种方法

一、概要

将彩色图像转换为灰度图像的过程称为灰度化处理。

对于图像而言,灰度化处理就是使彩色的R,G,B分量值相等的过程。

灰度化处理的方法主要有如下3种:

最大值法:使R,G,B的值等于3值中最大的一个,R=G=B=maxR,G,B),最大值法会形成亮度很高的灰度图像。

平均值法:是R,G,B的值求出平均值,R=G=B=(R+G+B)/3平均值法会形成较柔和的灰度图像。

加权平均值法:根据重要性或其他指标给R,G,B赋予不同的权值,并使R,G,B的值加权平均,R=G=B=WR+VG+UB,W,V,U分别表示权重,研究表明,人对绿色的敏感度最高,对红色次之,对蓝色的敏感度最低,因此W>V>U,实验和理论证明当W=0.30,V=0.59,U=0.11时,能得到最合理的灰度图像。

二、图片

三、实现

MyYuanLaiPic = imread('C:\lotus.jpg');%读取RGB格式的图像 
%显示原来的RGB图像  
figure(1);  
imshow(MyYuanLaiPic);  

MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换   
%显示经过系统函数运算过的灰度图像  
figure(2);  
imshow(MyFirstGrayPic);  


[rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像的矩阵的参数  
MidGrayPic1 = zeros(rows , cols);%用得到的参数创建一个全零的矩阵,这个矩阵用来存储用下面的方法产生的灰度图像  
MidGrayPic1 = uint8(MidGrayPic1);%将创建的全零矩阵转化为uint8格式,因为用上面的语句创建之后图像是double型的  

for i = 1:rows  
    for j = 1:cols  
        sum = 0;  
        for k = 1:colors  
            sum = sum + MyYuanLaiPic(i , j , k) / 3;%进行转化的关键公式,sum每次都因为后面的数字而不能超过255  
        end  
        MidGrayPic1(i , j) = sum;  
    end  
end  
%平均值法转化之后的灰度图像  
figure(3); 
imshow(MidGrayPic1);

MidGrayPic2 = zeros(rows , cols);%用得到的参数创建一个全零的矩阵,这个矩阵用来存储用下面的方法产生的灰度图像  
MidGrayPic2 = uint8(MidGrayPic2);%将创建的全零矩阵转化为uint8格式,因为用上面的语句创建之后图像是double型的  
for i = 1:rows  
    for j = 1:cols  
        MidGrayPic2(i , j) =max(MyYuanLaiPic(i,j,:));  
    end  
end  
%最大值法转化之后的灰度图像  
figure(4); 
imshow(MidGrayPic2);



MidGrayPic3 = zeros(rows , cols);%用得到的参数创建一个全零的矩阵,这个矩阵用来存储用下面的方法产生的灰度图像  
MidGrayPic3 = uint8(MidGrayPic3);%将创建的全零矩阵转化为uint8格式,因为用上面的语句创建之后图像是double型的  

for i = 1:rows  
    for j = 1:cols  
        MidGrayPic3(i , j) = MyYuanLaiPic(i , j , 1)*0.30+MyYuanLaiPic(i , j , 2)*0.59+MyYuanLaiPic(i , j , 3)*0.11;  
    end  
end  
%加权平均值法转化之后的灰度图像  
figure(5); 
imshow(MidGrayPic3);

四、结果

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值