zoukankan      html  css  js  c++  java
  • 直方图均衡化与直方图规定化

    直方图均衡化

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

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304135657050-1348197661.png)

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

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304135759876-905844516.png)

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

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304135816260-2017281920.png)

    tk取整扩展:

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304135828365-1975658170.png)

    将sk与tk确定映射对应关系,可得直方图均衡化结果。

    表1中已知条件有:共有灰度级个数为8,原始图像的每一级对应的分布概率为ps (sk )。

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304140144748-1856797204.png)

    直方图规定化

    直方图均衡化能自动增强图像的整体对比度,但是往往结果难以受到控制。实际中常常需要增强某个特定灰度值范围内的对比度或使图像灰度值的分布满足特定需求。这个时候使用直方图规定化会有较好的结果。

    直方图规定化就是要调整原始图像的直方图去逼近规定的目标直方图。M为原始图的灰度级数,N为目标图的灰度级数,且M>N。首先求出原始直方图的累计分布:

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304210110976-579284137.png)

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

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304140017286-771703774.png)

    接下来就是如何建立原始灰度级数和规定直方图灰度级数的对应映射关系。映射规则一般有两种:单映射规则(SML)和组映射规则(GML)。

    单映射规则中,将k从小到大依次找到能使下式有最小值的l的值,这样就可以将原始图像灰度级数k和规定直方图灰度级数l对应映射起来。

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304140032901-943899456.png)

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

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304140046374-1337648026.png)

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

    ![](https://img2018.cnblogs.com/blog/1590349/201903/1590349-20190304140054979-1906823519.png)
  • 相关阅读:
    eventbus3-intellij-plugin插件搜不到
    flutter控件之CheckBox
    Java中常见数据结构:list与map -底层如何实现
    flutter控件之RadioButton
    git add Untracked files
    执行git push出现"Everything up-to-date"
    用flutter写一个精美的登录页面
    Android Studio最全插件整理
    Mac下git的环境搭建和基本使用
    上周热点回顾(7.1-7.7)团队
  • 原文地址:https://www.cnblogs.com/ly999/p/10470006.html
Copyright © 2011-2022 走看看