上课的时候很不理解为什么累积分布函数可以实现均衡化,百度了很久终于搞懂了,记录一下自己的理解,希望能帮到以后的人
下面没有数学公式推导,希望能帮大家能从图形的角度去理解直方图均衡化的过程
(电脑作图太麻烦了,我直接手画,请谅解哈哈)
直方图均衡化过程
首先,先摆出直方图均衡化的计算过程
- 得到原始图片的灰度直方图
- 得到各个灰度级对应的概率密度函数
- 通过概率密度函数得到累积分布函数
- 累计分布函数乘以255,得到每一个灰度级对应的新的灰度
- 通过第4步的结果,将旧灰度映射得到新的灰度,即更新整张图片的灰度
要解决的问题
为什么直方图均衡化要用到累积分布函数
直方图想要实现的效果
下面两张图,左上角是原图(对,原本就是灰色的),右上角是经过直方图均衡化处理后的结果,可以发现区别在于:原图比较暗,处理后的图片对比度更强
没错!直方图均衡化做的就是这样一件事情,调整图片的对比度,而要实现这个目标,实际上就是使得图片的亮暗程度增加,因此需要引入灰度直方图(也就是左下角和右下角的直方图)
灰度范围是[0,255],当为1时,像素的灰度为1时,该像素点为黑色;像素的灰度为0时,该像素点为白色。
所谓的灰度直方图,就是统计图片中所有的像素点在各个灰度级的个数分别为多少,
例如,一张图片有总共有9个像素点,灰度为1的有1个像素点,灰度为2的有2个像素点,灰度为3的有3个像素点,灰度为4的有2个像素点,灰度为5的有1个像素点,那么这张图片的灰度直方图应该如下图所示:
如果图片的亮暗程度增加,那就应该扩展灰度范围,因为可能有些图片灰度范围不大,只有[100,200],或者也可能虽然灰度范围大,但主要的像素点都集中在某一个灰度上,不均匀
我们还是回到一开始的图片,对比两个直方图,可以发现均衡化的直方图蓝色向两边扩散,说明有一下一些像素点的灰度发生了变化,更具体的原因:
- 灰度低的像素点变多了;
- 灰度高的像素点变多了;
- 中间原本集中的点,被分散到了其他灰度。
这三个点很重要后面会用到!
由上述得,只要我们能够找到这样的一个函数,使得旧的灰度直方图发生以上三个变化,那么也就实现对比度的增强
概率密度函数、累积分布函数
首先简单介绍下概率密度函数和累积分布函数
概率密度函数,其实就是我们通常所说的概率,在上面的例子中,总共像素点9个,灰度1的像素点只有1个,因此灰度1的概率密度是1/9,同理可得灰度为2、3、4、5各自的概率密度分别为2/9、3/9、2/9、1/9
可以发现,其实概率密度函数是和个数相关的,所以