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

1.图像灰度化

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

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

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

2.图像灰度化处理方法

2.1根据matlab函数rgb2gray来实现

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

数字图像处理(五)图像灰度化处理_第1张图片
数字图像处理(五)图像灰度化处理_第2张图片
2.2分量法
将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。
数字图像处理(五)图像灰度化处理_第3张图片

 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灰度图像');

数字图像处理(五)图像灰度化处理_第4张图片
2.3最大值法
将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。
在这里插入图片描述

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);

数字图像处理(五)图像灰度化处理_第5张图片
2.4平均值法
将彩色图像中的三分量亮度求平均得到一个灰度值。
在这里插入图片描述

 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('平均值灰度图像');

数字图像处理(五)图像灰度化处理_第6张图片
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('加权平均值灰度图像');

数字图像处理(五)图像灰度化处理_第7张图片

你可能感兴趣的:(数字图像处理(五)图像灰度化处理)