直方图均衡化

图形处理中有一种对比度变换,像显示器就有对比度调节,对比度的提高可以使图像细节清晰,相反,对比度的减小可以隐藏图像的细节,在一定程度上使图像柔和。

直方图均衡化

  图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接接对比度增强方法。直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。

  直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。

  缺点:

  1)变换后图像的灰度级减少,某些细节消失;

  2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。

   直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。

   这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

  这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景杂讯的对比度并且降低有用信号的对比度。

  直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):

  (1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。

  (2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。

  累计分布函数(cumulative distribution function,CDF)即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为:

  gk = EQ(fk) = (ni/n) = pf(fi) ,

  (k=0,1,2,……,L-1)

  上述求和区间为0到k,根据该方程可以由源图像的各像素灰度值直接得到直方图均衡化后各像素的灰度值。在实际处理变换时,一般先对原始图像的灰度情况进行统计分析,并计算出原始直方图分布,然后根据计算出的累计直方图分布求出fk到gk的灰度映射关系。在重复上述步骤得到源图像所有灰度级到目标图像灰度级的映射关系后,按照这个映射关系对源图像各点像素进行灰度转换,即可完成对源图的直方图均衡化。对比度变换其中一种比较简单的方法是直方图均衡化。
所谓直方图就是在某一灰度级的象素个数占整幅图像的象素比  h=nj/N,其中nj是灰度级在j的象素数,N是总象素数,扫描整幅图像得出的h的离散序列就是图像的直方图,h求和必然=1,所以直方图可以看成是象素对于灰度的概率分布函数。

直方图 直方图是用横坐标标注质量特性值,纵坐标标注频数或频率值,各组的频数或频率的大小用直方柱的高度表示的图形。直方图能够显示一张照片中色调的分布情况 揭示了照片中每一个亮度级别下像素出现的数量 .根据这些数值所绘出的图像形态 可以初步判断照片的曝光情况 .直方图是照片曝光情况最好的回馈

从理论上说 ,一张曝光良好的照片 在不同的亮度级别下细节都应该非常丰富 ,各亮度值上都有像素分布 像一座起伏波荡的小山丘 .为了方便观察 ,把直方图划分为5个区  ,每个区代表一个亮度范围 j左边为极暗部、暗部 j中间为中间调
右边是亮部和极亮部 
根据这些不同ilangd范围下像素出现的数量 
对于高调照片(明亮调子且细节丰富的图片) 
山丘的峰顶应该集中在直方图右边的亮部区 
对于低调照片(深色调子且细节丰富的图片) 
山丘的峰顶应该集中在直方图左边的暗部区域 
如果山丘覆盖了整个区域 
说明曝光情况正好且细节清晰可见



直方图是高低不齐的,因为象素灰度是随机变化的,直方图均衡化就是用一定的算法使直方图大致平和。
算法如下:
对于一个直方图
设 Pr(r)是原始图像直方图,Ps(s)是均衡化的直方图,
由于其是一个概率分布函数
所以有 Ps(s)ds=Pr(r)dr        (编辑关系,ds,dr是积分变量)
因为要进行均衡化,令 Ps(s)=1,
得 ds=Pr(r)dr/1
两边积分得 s=F Pr(r)dr          (因为编辑关系,左边F表示积分符号....-__-++)
数字图像是离散的,因此离散化上式得
sk=E{j=0,k}(nj/N)                   左式k,j是离散量下标,因为编辑关系,E{0,k}表示下标0到k的连加符号,N是象素总数
由此得出每一象素的sk为均衡化后的正规化灰度(即灰度正规化到[0,1]),统计sk即可得出均衡化后的直方图。
在均衡化过程中可以对每一象素映射到新的实际灰度值sk*255,就实现了图像的变换
(严格理论中应该是灰度正规化到[0,1]区间,然后均衡化后的sk还要量化到原始的正规灰度以实现灰度合并,下面的BCB程序并没有量化,而且255是固定灰度级,因为256色BMP的彩色表就是256个表项)

下面是规范化的直方图均衡步骤:

1求出已知图像的直方图。

2对每一灰度级Rk预计算映射灰度级Sk

3从给定的pz(z)得到变换函数G。

4利用迭代方案对每一个sk值预计算值

5对于原始图像的每个像素,若像素值为rk,将该值映射到其对应的灰度级sk,然后映射到最终灰度级zk。

 

     而对于原始图像比较暗的图像,采取如下的规定直方图,以使高亮度像素能得到充分的加强。

它的步骤基本上与规范化差不多,但最后一步为:

将第一步得到的变换反转过去,即把原始直方图对应映射到规定的直方图,也就是把所有的ps(si)映射到pu(uj)中去。由于映射是在离散空间进行的,而且在取整时不可避免会引入误差,因此采取何种对应规则是一个很重要的问题。比较常用的一种方法是Gonzalez在1987年提出的单映射规则(single mapping law,SML),首先寻找能满足|∑ps(si)-∑pu(uj)| 最小的k和l(ps()和pu()的求和上限),然后把ps(si)映射到pu(uj)中去。




阅读(6660) |  评论(0)
推荐 转载
marginwidth="0" marginheight="0" id="lmid_iframe" width="590" height="100" frameborder="0" scrolling="no" allowtransparency="true" src="http://g.163.com/r?site=netease&affiliate=blog&cat=article&type=column590x100&location=1" style="margin: 0px; padding: 0px; border: 0px; display: block;">
关闭
玩LOFTER,免费冲印20张照片,人人有奖!      我要抢>
评论
  登录后你可以发表评论,请先登录。 登录>>
 
 
 
 
 
 
 
 
 
 
 

网易公司版权所有 ©1997-2016

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值