直方图均衡化学习笔记

直方图均衡化的基本思想是:把原图像的灰度级r经过一个函数T(r)进行变化到另外一个灰度级s,s=T(r) ,经过这种映射后使前景和背景可以区分开(有些图片背景前景都很暗或者都很亮),固然对T(r)有一些必要的规定:web

  1. 第一不管怎么变换,必定要保证原来的大小关系不变,不能出现较亮的区域变成较暗的区域,较暗的区域变成较亮的区域,只是对比度增大,绝对不能明暗颠倒;svg

  2. 第二若是是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积分布函数是个好的选择,由于累积分布函数是单调增函数(控制大小关系),而且值域是0到1(控制越界问题),因此直方图均衡化中使用的是累积分布函数。函数

问题是累积分布函数怎么就能使变换后的灰度级s的几率密度函数为均匀地几率密度函数呢(即对图像的像素点的灰度级映射后的图像的直方图是均匀的)?
这个过程能够经过简单的公式推导:

S为变换后的r通过T(r)变换后的变量,P(r)和P(S)分别为对应的几率密度函数,因为P(S)和P(r)从0到L-1的积分相等都为1,因此有上式。xml


S的最大范围为L-1,从0到r积分的范围0~1。
根据结论可知映射后的PDF为定值的也就是均匀的,怎么来理解这件事呢?
选择累计几率密度函数做为映射函数T(r),这是一个非线性的映射,以下图所示
图4
原图像的灰度级r的PDF为p(r),s为r通过累加几率函数变换后的灰度级,从图4上能够看出在小红圈处的灰度通过变换到s后“宽度”被压缩啦,小黑圈对应的灰度级通过变换后的灰度级被拉伸啦,最终使其成为一个均匀的几率密度函数,从图像的像素来考虑,几率密度函数就办成离散的了,在这种状况下几率比较小的灰度级通过映射后容易被附近几率较大的灰度级吸取,也会出现好多几个灰度级的几率密度都很小变换后这些灰度级汇集到一块成为一个灰度级,最使整个图像的灰度达到均衡化。
这里写图片描述blog


变换后的几率密度函数,被均匀的拉伸了
这里写图片描述图片