直方图均衡化

直方图均衡化

直方图均衡化是对图像的灰阶进行变换,使变换后图像的直方图成为常量值:

目的:

l  均衡利用动态范围内的所有灰阶;

l  进一步做直方图规定(histogram specification).

我们首先假设范围内的灰度值是连续的,映射函数x映射到同样取值范围内的y。我们再假设输入图像中区间内的灰度值被映射到输出图像的区间。由于映射前后的像素个数不变,所以有:

因为输出图像的直方图被均衡化了,其值应为1,即,所以有,于是可以得到:

对两边求积分,我们就可以从直方图均衡化中获得映射函数:

其中, 是输入图像灰阶的累计分布函数:

直方图均衡化可以直观的理解如下:

l  如果值较大,那么就会比较陡峭,就会比较宽,为了满足,会导致值比较小;

l  如果值较小,那么就会比较平缓,就会比较窄,会导致值比较大。

当灰阶值为离散值时,输入灰阶x范围内的一个离散值,此时连续的映射函数变为离散:

其中分别是输入图像的直方图和累计分别直方图:

其中为灰阶值为i的像素个数,N为总像素个数。

的范围是,需要被转换到范围内,有两种方法:

1.   

2.   

其中是小于实数的最大整数值,加上0.5是为更准确地取整。注意,两种方法中都是将映射到最高灰阶值,而第二种变换中还将映射到0而使输出图像的灰阶值占据整个动态范围,第二种变换同时做了灰度值范围拉伸和直方图均衡。

例子

假设图像大小为,灰阶个数为,下表显示了以上两种变换方法下的直方图均衡化过程:

上面的例子表明给定图像的直方图被均衡化了。虽然均衡化的直方图看起来并不是一个常量值,但是其累计分布直方图是一条严格上升的斜线表明直方图确实被均衡化了。均衡化的直方图不能保证是一个常量值是由于同一个灰阶值的像素没有办法再被分开成多个灰阶的像素来保证达到均值分布。

编程问题:

l  获取输入图像的直方图:

l  构建查找表:

l  图像映射:

例子:

原文:http://fourier.eng.hmc.edu/e161/lectures/contrast_transform/node2.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值