a*算法matlab代码_【图像算法&MATLAB】直方图均衡(干货代码)

2b1519704bd10914ebb5b2919f04c2d4.png

本文内容来自博客专栏《DIP数字图像处理》

1

前言

直方图均衡(Histogram equalization)是利用直方图分布,计算累加函数,按照累加函数做映射,能够提升图像对比度。
本文我会从每一个小的步骤编写,说明,并给出每一阶段的结果,让你完全搞懂其原理。
直方图均衡示例:

7a86c947538dbee8df304881e1719c47.png

2

代码

2.1 自己写一个

还是那句话, 【要想搞明白真正原理,尤其你是做图像算法的,还是得自己动手写】代码如下:

%直方图均衡Histogram equalization 源代码Iin = imread('tire.tif');[numRows,numCols]=size(Iin);numBins=2^8;%直方图统计,概率分布函数pdf(Probability distribution function)pdf=zeros(1,numBins);for ii=1:numRows for jj=1:numCols pdf(Iin(ii,jj)+1)=pdf(Iin(ii,jj)+1)+1; endendfigure()plot(pdf,'.-');grid on;title('直方图统计');%累加直方图得到,累加函数cdf(Cumulative distribution function)cdf=cumsum(pdf);cdf=cdf./cdf(end); %归一化处理figure()plot(cdf,'.-');grid on;title('直方图累加函数计算');% 根据累加函数映射Iout=zeros(numRows,numCols);for ii=1:numRows for jj=1:numCols Iout(ii,jj)=255*cdf(Iin(ii,jj)+1); endendfigure()imshow([Iin,Iout]);title('左:原图 右:处理图')

fe64d1cc11a950f5c7cff41704491d93.png

08753ad652bbd79215d34c7de6a9642f.png7a86c947538dbee8df304881e1719c47.png

2.2 使用Matlab 自带函数histeq

%直方图均衡 Histogram equalizationIin = imread('tire.tif');Iout=histeq(Iin);imshow([Iin,Iout]);title('左:原图 右:处理图')

3

总结

直方图均衡方法是一种很好的图像对比度提升方法,但是并不适应所有场景,所以需要在其基础上做改进,历来学者做了不少创新。
不过,这种处理思想以及上述代码,是经典,先搞懂经典,再去优化。

【END】

本文内容来自博客专栏《DIP数字图像处理》

0f3cd4384db74d02aee7cffb0a6dc1c3.png

5f9a62a338e92876c129d71ed792bcc7.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值