zoukankan      html  css  js  c++  java
  • 直方图均衡化的计算以及MATLAB实现

    直方图均衡,这里不写公式,只看怎么算

    一.手算直方图均衡

    例如一个矩阵

    [源矩阵= left[ egin{matrix} 4&4&4&4&4&4&4&0\ 4&5&5&5&5&5&4&0\ 4&5&6&6&6&5&4&0\ 4&5&6&7&6&5&4&0\ 4&5&6&6&6&5&4&0\ 4&5&5&5&5&5&4&0\ 4&4&4&4&4&4&4&0\ 4&4&4&4&4&4&4&0\ end{matrix} ight] ]

    由题意或矩阵分析,该矩阵的灰度值范围是[0,7]
    现在,统计计算各灰度值数量、概率、累计概率

    映射后的灰度值计算=最大灰度值差*当前累计概率
    由于灰度值为正数,所以最后要取整

    灰度值 数量 概率 累计概率 映射后的灰度值 取整
    P(h=0) 8 0.125 0.125 7*0.125=0.875 1
    P(h=1) 0 0 0.125 7*0.125=0.875 1
    P(h=2) 0 0 0.125 7*0.125=0.875 1
    P(h=3) 0 0 0.125 7*0.125=0.875 1
    P(h=4) 31 0.484375 0.609375 7*0.609375=0.4.265625 4
    P(h=5) 16 0.25 0.859375 7*0.859375=6.015625 6
    P(h=6) 8 0.125 0.984375 7*0.125=6.890625 7
    P(h=7) 1 0.015625 1 7*1=7 7

    [直方图均衡化后= left[ egin{matrix} 4&4&4&4&4&4&4&1\ 4&6&6&6&6&6&4&1\ 4&6&7&7&7&6&4&1\ 4&6&7&7&7&6&4&1\ 4&6&7&7&7&6&4&1\ 4&6&6&6&6&6&4&1\ 4&4&4&4&4&4&4&1\ 4&4&4&4&4&4&4&1\ end{matrix} ight] ]

    二.matlab直方图均衡

    方法一

    • histeq(mat):对矩阵进行直方图均衡化
    • hist(mat):对矩阵进行直方图显示
    • imhist(mat):对矩阵进行直方图显示

    对于hist和imhist区别目前不知道,只是当自定义小矩阵用imhist显示直方图不成功,用hist能够显示成功

    方法二

    • imadjust(img,[low_in,high_in],[low_out,high_out],gamma)
    • -[low_in,high_in]:需要扩展的范围,归一化值,即[0,1]
    • -[low_out,high_out]:扩展到这个范围,同上
    • -gamma:映射方式(系数)

    <1变亮;
    1:变暗;
    =1:(默认值);

  • 相关阅读:
    浅谈js的继承
    Android调用jni全过程,方便以后操作
    oracle中查找执行效率低下的SQL
    EBS R12 怎么修改APPS密码
    oracle查看系统资源占用情况
    ramfs
    091104 晴
    周六
    注意调整
    短信收到
  • 原文地址:https://www.cnblogs.com/thgpddl/p/12523173.html
Copyright © 2011-2022 走看看