图像直方图均衡化c语言程序,数字图像处理——直方图均衡化

1、相关了解

直方图均衡化又称为直方图平坦化。直方图均衡化的基本思想是将原始图像的不均衡的直方图变换为均匀分布的形式。即将输入图像转化为在每一灰度级上都有相同的像素点数(即输出的直方图是平坦的,其分布为均匀分布)。直方图均衡化的结果扩展了像元取值的动态范围,从而达到增强图像整体对比度的效果。

2、相关实例:对UESTC_rain 图像进行直方图均衡化

① Matlab 程序代码:

方案一:

function

he

%by Yuanshuai ZhengUESTC

数字视觉视频技术exercise

histogram equalization

histgram=zeros(1,256);%生成直方图数组

cdf=zeros(1,256);%累积分布密度cdf

[uestc_rain,map]=imread('UESTC_rain.bmp');%读取图像

[m,n]=size(uestc_rain);

uestc_rain_equ=zeros(128,128);

for

i=1:m

for

j=1:n

k=uestc_rain(i,j)+1;

histgram(k)=histgram(k)+1;

end

end

%得到cdf

cdf(1)=histgram(1);

for

i=2:256

cdf(i)=cdf(i-1)+histgram(i);

end

%点运算

for

i=1:m

for

j=1:n

k=uestc_rain(i,j)+1;

uestc_rain_equ(i,j)=cdf(k)*256/(m*n);%均衡化后的直方图

end

end

uestc_rain_equ(:,[n/3:n])=[];

%imwrite(uestc_rain_equ,map,'uestc_rain_equ.bmp');%保存均衡化后的图像

%显示原图及均衡化后的图像,显示原直方图和均衡化后的直方图

figure(1);

imshow(uint8(uestc_rain));

figure(2);

imshow(uint8(uestc_rain_equ));

%imhist(uint8(uestc_rain));

%imhist(uint8(uestc_rain_equ));

方案二:

function

he2

%by Yuanshuai Zheng UESTC 数字视觉视频技术exercise histogram equalization

A=imread('UESTC_rain.bmp');

figure(1);

imshow(A);

A=rgb2gray(A);%转换成灰度图——关键一步!!!

figure(2);

imhist(A);

B=histeq(A,n);

figure(3);

imhist(B);

figure(4);

imshow(uint8(B));

处理结果

blog_151a406950102x6dh.htmlblog_151a406950102x6dh.html

雨晴立人楼原图像

直方图均衡化处理后图像

blog_151a406950102x6dh.htmlblog_151a406950102x6dh.html

原图像的直方图

均衡化后图像的直方图

③ 结果简析和反思

从图中可以明显看出,均衡化的图像的对比度明显大于原始图像。

第一种方法是利用直方图变化公式,过程比较繁琐。

第二种方法直接用MATLAB中的histeq即可完成大部分工作。需要注意的的是:要把三维图像转化成灰度图像之后才能用inhist!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值