• 图像均衡化


    参考链接:

    https://www.cnblogs.com/qiqibaby/p/5321509.html

    blog.163.com/sunhuan315@126/blog/static/38117190200992531224611/

    一、基本介绍

    图像均衡化得目的是为了提高图像的对比度。对于灰度分布比较集中的图(整体太暗或者太亮),可以起到均衡作用(有明有暗)。

    看两张来自网上的灰度分布图,对比一下。

    图1.1  图片链接(http://blog.csdn.net/xiajun07061225/article/details/6910129)

    右上和右下就是灰度的分布变化结果。灰度分布直方图的横轴表示灰度等级,

    纵轴表示该灰度等级下的像素点数。这个要理解好。

    二、数学解释

    0. 前提:常见的灰度像素范围是 [0, 255],在这里需要先归一化到 [0, 1]。

    1. 假设原图的灰度为 r [归一化到0-1],直方图均衡化后的结果是 s [结果是0-1],直方图均衡化操作 T(),得到数学表达式:2. 当然不是任意的变换T都可以拿来做 直方图均衡化。

    需要满足两个要求(直观上就可以理解)

        #1 在 r 的区间上,T需要是一个单调递增函数。因为这可以保证,变换后的结果,像素之间的明暗关系不会错(原来比我暗的还比我暗,原来比我亮的还比我亮);

        #2 s 的取值范围要和 r 相同。因为,要是超过了,255以上就存不了了,那就麻烦了。

    所以,T的选择之一,就是“累加概率密度函数”。大家的选择,群众的眼睛。

    解释一下:p是概率密度,这个公式可以参考《概率统计》

    但是,总所周知,像素是离散的,怎么可以积分嗯呢?那就求和咯。于是,得

    解释一下:P是每级灰度的概率(见下一个公式),这里的 k 就是 r

    解释一下:n 是像素总和;nk 是第 k 级灰度范围捏的像素点数;

    L 就是划分的级数;

    综合以上各式,得

    解释一下:(公式有问题)公式中的 k 就是 r ,

    P的下角标r忽略之,P(r) 表示灰度为 r 的概率。

    3. 算法的大致过程

    #1 计算灰度图像的直方图分布,得到每个级别灰度的概率。

    #2 根据公式计算每个像素的新值。

    三、代码

    OpenCV的实现

    cv::equalizeHist(src, dst);

    自己造轮子

    https://www.cnblogs.com/qiqibaby/p/5321509.html

  • 相关阅读:
    Javascript位运算符
    自定义控件基础2
    Javascript原型链实现继承
    Javascript如何实现水印效果
    CSS详解position(1)
    Javascript对象冒充实现继承
    Javascript节点类型
    实用技巧chm无法搜索
    Javascript定义类或对象
    深入理解JavaScript系列
  • 原文地址:https://www.cnblogs.com/alexYuin/p/7923012.html
Copyright © 2020-2023  润新知