数字图像处理(五)图像灰度化处理

1.图像灰度化

灰度图像上每一个像素的颜色值又称为灰度,指黑白图像中点的颜色深度, 范围通常从0到255 ,白色为255 ,黑色为0。所谓灰度值是指色彩的浓淡程度,灰度直方图是指一幅数字图像中,对应每个灰度值统计出具备该灰度值的象素数。web

灰度就是没有色彩, RGB色彩份量所有相等。若是是一个二值灰度图象 ,它的象素值只能为0或1 ,咱们说它的灰度级为2。一个256级灰度的图象,若是RGB三个量相同时,如: RGB(100, 100,100)就表明灰度为100 , RGB(50,50,50)表明灰度为50。如今大部分的彩色图像都是采用RGB颜色模式,处理图像的时候,要分别对RGB三种份量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配。svg

图像灰度化处理能够做为图像处理的预处理步骤,为以后的图像分割、图像识别和图像分析等 上层操做作准备。函数

2.图像灰度化处理方法

2.1根据matlab函数rgb2gray来实现3d

f=imread('下载.jpg');
>> h=rgb2gray(f);
>> imshow(h);

在这里插入图片描述
在这里插入图片描述
2.2份量法
将彩色图像中的三份量的亮度做为三个灰度图像的灰度值,可根据应用须要选取一种灰度图像。
在这里插入图片描述code

im=imread('下载.jpg');
figure('name','原图像');
imshow(im);
%提取R、G、B三色份量
imR=im2double(im(:,:,1));
imG=im2double(im(:,:,2));
imB=im2double(im(:,:,3));
%乘以255,将灰度值范围变回[0,255]并取整
imRGB1=round(imR*255);
im(:,:,1)=imRGB1;
im(:,:,2)=imRGB1;
im(:,:,3)=imRGB1;subplot(1,3,1);
imshow(im);
title('份量法1灰度图像');
imRGB2=round(imG*255);
im(:,:,1)=imRGB2;
im(:,:,2)=imRGB2;
im(:,:,3)=imRGB2;subplot(1,3,2);
imshow(im);
title('份量法2灰度图像');
imRGB3=round(imB*255);
im(:,:,1)=imRGB3;
im(:,:,2)=imRGB3;
im(:,:,3)=imRGB3;subplot(1,3,3);
imshow(im);
title('份量法3灰度图像');

在这里插入图片描述
2.3最大值法
将彩色图像中的三份量亮度的最大值做为灰度图的灰度值。
在这里插入图片描述xml

im=imread('下载.jpg');
[x,y,z]=size(im);
immax=ones(x,y);
%最大值灰度图像
for i=1:x
    for j=1:y
    immax(i,j)=max(im(i,j,:));
    end
end
im(:,:,1)=immax;
im(:,:,2)=immax;
im(:,:,3)=immax;
figure('name','最大值灰度图像');
imshow(im);

在这里插入图片描述
2.4平均值法
将彩色图像中的三份量亮度求平均获得一个灰度值。
在这里插入图片描述blog

im=imread('下载.jpg');
figure('name','原图像');
imshow(im);
%提取R、G、B三色份量
imR=im2double(im(:,:,1));
imG=im2double(im(:,:,2));
imB=im2double(im(:,:,3));
%平均值灰度图像
%取完平均值以后还要乘以255,将灰度值范围变回[0,255]并取整
imRGB=round((imR+imG+imB)/3*255);
im(:,:,1)=imRGB;
im(:,:,2)=imRGB;
im(:,:,3)=imRGB;
figure('name','灰度图像');

imshow(im);
title('平均值灰度图像');

在这里插入图片描述
2.5加权平均法
根据重要性及其它指标,将三个份量以不一样的权值进行加权平均。因为人眼对绿色的敏感最高, 对蓝色敏感最低,所以,按下式对RGB三份量进行加权平均能获得较合理的灰度图像。
在这里插入图片描述图片

im=imread('下载.jpg');
figure('name','原图像');
imshow(im);
%提取R、G、B三色份量
imR=im2double(im(:,:,1));
imG=im2double(im(:,:,2));
imB=im2double(im(:,:,3));
%加权平均值灰度图像
%Wr=0.587,Wg=0.299,Wb=0.114,加权平均后还要乘以255,将灰度值范围变回[0,255]并取整
imRGB2=round((0.587*imR+0.299*imG+0.114*imB)*255);
im(:,:,1)=imRGB2;
im(:,:,2)=imRGB2;
im(:,:,3)=imRGB2;

imshow(im);
title('加权平均值灰度图像');

在这里插入图片描述