彩色图像灰度均衡化

一、实验原理

彩色图像灰度化是将RGB三个通道的像素值转换为单一的灰度值的过程。常见的灰度化方法包括加权平均法和取平均值法。加权平均法通过赋予不同通道的像素值不同的权重,得到灰度值。取平均值法则直接将RGB三个通道的像素值求平均。灰度化后的图像能够更好地突出图像的亮度变化,去除了颜色信息,使得我们能够更专注于图像的亮度特征。

灰度均衡化是一种用于增强图像对比度的方法。它通过对图像的灰度直方图进行调整,使得图像的像素值分布更加均匀。具体而言,灰度均衡化的步骤如下:

i)统计图像的灰度直方图:对灰度化后的图像,统计每个灰度级别的像素数量,得到灰度直方图。

ii)计算累积分布函数(CDF):根据灰度直方图,计算每个灰度级别的累积像素数量,得到CDF。

iii)计算灰度映射函数:根据CDF,计算每个灰度级别的映射函数,将原始灰度值映射到新的灰度值。

iv)应用灰度映射函数:将原始图像中的每个像素值通过灰度映射函数进行转换,得到灰度均衡化后的图像。

彩色图像的灰度化、均衡化以及显示灰度直方图,MATLAB中均内置有相应的函数,其中imread函数可以获取原彩色图像的红蓝绿三个灰度分量,根据获取到的三原色分量,imshow函数可以展示灰度化后的彩色图像的三种颜色灰度图。Imhist、histeq函数分别可以显示灰度直方图和将原图像均衡化。结合使用hieteq、imhist函数可以显示灰度均衡化的灰度直方图。

二、实验结果与分析

图1.1图像显示

如图1.1所显示,四幅子图依次展现了原彩色鹦鹉图像、红色颜色分量灰度图、绿色颜色分量灰度图以及蓝色颜色分量灰度图。

图1.2红色灰度图及其直方图、红色均衡化图像及其直方图

如图1.2所示,原红色灰度直方图显示不同灰度级像素的分布数量为先增加再减少后增加,像素灰度分布存在一个灰度级为125的波谷,使用均衡化方法后图像中各个像素灰度级分布更加均匀,提高了图像对比度,恢复出了更多细节信息,使图像的亮度更加均匀,从而提高了图像的观感。

图1.3绿色灰度图及其直方图、绿色均衡化图像及其直方图

如图1.3所示,原绿色灰度直方图显示不同灰度级像素的分布数量为先增加再减少接着增加再减少,其中一个波谷为灰度级70处,使用均衡化方法后图像中各个像素灰度级分布更加均匀,提高了图像对比度,恢复出了更多细节信息,使图像的亮度更加均匀,从而提高了图的观感。

图1.4 蓝色灰度图及其直方图、蓝色均衡化图像及其直方图

如图1.4所示,原蓝色灰度直方图显示不同灰度级像素的分布数量大体为先增加再减小接着增加再减小,波峰为灰度级25、65处,其中一个波谷为灰度级70处,使用均衡化方法后图像中各个像素灰度级分布更加均匀,提高了图像对比度,恢复出了更多细节信息,使图像的亮度更加均匀,从而提高了图的观感。

三、MATLAB程序代码

代码链接:https://download.csdn.net/download/m0_68251389/88557570

I=imread("parrot.jpg");
R=I(:,:,1);%获取红色分量
G=I(:,:,2);%获取绿色分量
B=I(:,:,3);%获取蓝色分量
%% 彩色图像灰度化
figure (1)
subplot(2,2,1);
imshow(I);title("原图像");%原彩色图像
subplot(2,2,2);
imshow(R);title("红色灰度图");%红色波段灰度图
subplot(2,2,3);
imshow(G);title("绿色原图像");%绿色波段灰度图
subplot(2,2,4);
imshow(B);title("蓝色原图像");%蓝色波段灰度图
%% 红色直方图均衡化
figure (2)
subplot(3,2,1);
imshow(R);title("红色灰度图");
subplot(3,2,2);
imhist(R);title("红色灰度直方图");
J_R=histeq(R);
subplot(3,2,3);
imshow(J_R);title(" 红色均衡化后的图像");
subplot(3,2,4);
imhist(J_R);title(" 红色均衡化后的灰度直方图");
%% 绿色直方图均衡化
figure (3)
subplot(3,2,1);
imshow(G);title("绿色灰度图");
subplot(3,2,2);
imhist(G);title("绿色灰度直方图");
J_G=histeq(G);
subplot(3,2,3);
imshow(J_G);title(" 绿色均衡化后的图像");
subplot(3,2,4);
imhist(J_G);title(" 绿色均衡化后的灰度直方图");
%% 蓝色直方图均衡化
figure (4)
subplot(3,2,1);
imshow(B);title("蓝色灰度图");
subplot(3,2,2);
imhist(B);title("蓝色灰度直方图");
J_B=histeq(B);
subplot(3,2,3);
imshow(J_B);title(" 蓝色均衡化后的图像");
subplot(3,2,4);
imhist(J_B);title(" 蓝色均衡化后的灰度直方图");
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值