不调用python函数实现直方图均衡化_直方图均衡化、直方图规定化例子

直方图均衡化是将灰度值分布动态范围偏小的图像(如灰度值集中在直方图右部,此时图像过于明亮)扩大其动态范围,改变后的图像的灰度级数有可能降低。灰度统计直方图是一个1-D的离散函数,表达式为:

059fd125bcf44796f0653131453cd6a9.png


其中nk为在k灰度级上的像素点个数,L为总灰度级数,将其归一化有:

135f0b512615839e452489ed4f1deac8.png


其中sk为图像的第k级灰度值,N为像素点总个数。在满足一定的条件下,s的累积分布函数为:

42e0dec5ec9368b769453281166ce3f4.png


tk取整扩展:

b0334b3f4031d6c65fecdfdba1c24aa0.png


将sk与tk确定映射对应关系,可得直方图均衡化结果。
表1中已知条件有:共有灰度级个数为8,原始图像的每一级对应的分布概率为ps (sk )。

9e69847f028653380865307a6f8ecd92.png


直方图规定化
直方图均衡化能自动增强图像的整体对比度,但是往往结果难以受到控制。实际中常常需要增强某个特定灰度值范围内的对比度或使图像灰度值的分布满足特定需求。这个时候使用直方图规定化会有较好的结果。
直方图规定化就是要调整原始图像的直方图去逼近规定的目标直方图。M为原始图的灰度级数,N为目标图的灰度级数,且M>N。首先求出原始直方图的累计分布:

bd307db81de2dbba8535ccb29fb93759.png


规定目标直方图,得出其累计分布:

58f6e63cbce72e43949ede1c1e459d74.png


接下来就是如何建立原始灰度级数和规定直方图灰度级数的对应映射关系。映射规则一般有两种:单映射规则(SML)和组映射规则(GML)。
单映射规则中,将k从小到大依次找到能使下式有最小值的l的值,这样就可以将原始图像灰度级数k和规定直方图灰度级数l对应映射起来。

1457c3b092a2b74d5f562b4f0a2f76cc.png


组映射规则中,设I(l)为整数函数,l=1,2,3,…,N-1,满足0I(0)≤I(l)≤…≤I(N-1)≤M-1。I(l)为不确定值,因此要确定能使下式达到最小的I(l)*值:

1f6dcbbb91656e2131efd5d23d2961b3.png


运算时有如下规则:如果l=0,则将原始图灰度级的0到I(0)级对应映射到u0中去,如果*l**≥1,则将原始图灰度级的I(l-1)+1到I(l)级对应映射到ul*中去。两种映射规则如下表所示,S表示单映射,G表示组映射:

3d713b0341ca318bc2ccbff29783c266.png


转自:直方图均衡化与直方图规定化 - MagicianY.L - 博客园

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值