图像直方图均衡化算法理解—Apple的学习笔记

前言

继续解决我自动处理图片的需求,上一篇我的blog已经暴露的线索(https://www.jianshu.com/p/1945be43a959),你们猜的不错,下一步我就是要做直方图均衡化。对于偏暗,偏亮,亮度较为集中的图像进行处理。当然也可以全部照片都自动处理进行灰度直方图均衡化。此篇先说下直方图均衡化的原理。

一,直方图均衡化的图像原理

直方图均衡就是让照片的灰度分布拉宽,然后图像对比度变大则变的清晰。
方图均衡化方法的基本思想是对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。从而达到清晰图像的目的。


直方图.png

二,直方图均衡化的数学原理

直方图均衡化的目的是使得变换后的图像的直方图是均匀分布的,又因为概率密度是指变量落在某个区间的概率,而累积分布函数f(x)的导数就是概率密度函数。所以,当分布均匀时,就是使得概率密度能够保持为一个常数。有了这些分析,我们的目的就是想找到这样的一种变换函数,使得变换后图像直方图分布均匀(这里的直方图都用灰度级的个数除以总像素个数,进行归一化。)
关于概率密度和概率分布函数要是忘记了就自己找书看吧


概率密度和分布函数图.png

三,灰度图像直方图均衡化主要步骤:

  1. 计算每一个灰度级的概率
  2. 计算每一个灰度级的累计概率
  3. 计算映射表
  4. 将图像像素值通过映射表进行映射

四,数学推导

对于映射表其实就是概率变换函数。当我们用r的累积分布函数作为变换函数时,得到s的概率密度函数是1(也就是均匀的意思)


数学公式.png

五,opencv代码实现

equalizeHist(src_gray, dst);函数即可,处理后的灰度直方图效果如下


代码实现效果.png

六,继续思考

  1. 我的照片都是彩色的呀,怎么处理?
    解决方法:分RGB的3个通道分别处理,但是这样可能会改变色调。还有什么方法呢,网上查了下RGB转YUV后对Y通道处理即可啦。

  2. 直方图均衡化算法优化,有没有相关论文?
    其实图像直方图的应用主要是医学领域的x射线,将亮度提高可以看到病灶。对应彩色照片处理后细腻度不够,网上很多论文写了关于直方图均衡化的改进处理,包括规定化直方图,及添加插值法,添加滤波等。

你可能感兴趣的:(图像直方图均衡化算法理解—Apple的学习笔记)