zoukankan      html  css  js  c++  java
  • 图像增强(二)

    图像增强的优劣评估主要采用主观方法。一般包括以下几种图像增强方法:
    1. 对比度增强
        该方法按照一定规则逐点改变像素灰度,从而改变像素灰度范围,达到增强对比度的目的。若输入图像为f(x,y),输出图像为g(x,y),则对比度增强可以表示为:
        g(x,y)=T[f(x,y)]
        其中T[.]表示输出像素灰度和对应的输入像素灰度之间的映射关系。该映射关系有以下几种:
      1) 线形映射
         若原图像的灰度范围为[B1,E1],而期待的输出灰度范围为[B2,E2],则线形变换
         g(x,y) = [(E2-B2)/(E1-B1)]*[f(x,y)-B1]+B2;
         可以满足这一要求。
      2) 分段线形映射
      3) 非线形映射
         从原理上讲,T[.]可以为任何非线形数学函数,例如平方、指数、对数、幂等变换等,但通常我们使用的是对数变换或幂变换。
         g(x,y) = Clog[f(x,y)+1]
        式中C用于使变换后的像素灰度在合适的范围。常见的珈玛校正用的就是对数变换。
      4) 其它映射关系
         <1> 灰度切片
             即取出一小段灰度范围对其加以拉伸后进行观察。
         <2> 锯齿型变换
        
    2. 修正直方图增强
         直方图增强技术使用图像直方图作为图像增强的依据,使变换后的图像的直方图成为期望的形状。这种技术可以增加对比度并消除噪声。
      1) 直方图均衡
      2) 直方图规定化
         有两点要注意:其一,该方法要求函数的反函数,在离散的数字图像上比较容易处理。其二,定制合适的直方图比较困难。
    3. 平滑
      平滑技术用于消除图像中的噪声。可以在时域通过求邻域平均实现,也可以在频域通过低通滤波实现。
      1) 邻域平均
         该方法比较简单。这里提几点对该方法的改进以避免对图像信号本身的平滑(主要是减小边界信息的损失):
         <1> 门限法
             当像素灰度高出平均值某个值时才进行替代,否则保持其原始值不变。
         <2> 加权法
             即按照距离或其它因素对像素和其邻域赋予不同的权重。
         <3> 选择平均法
             即不必使用窗口内的所有像素点,而是有选择性的使用。比如最接近中心像素灰度的几个像素点,或与之灰度差小于方差的那些像素点。
         <4> 子窗统计法
             即将窗口内像素排序后分为两组:A和B,计算其灰度平均值,若两平均值之差过大,则该子窗包含边界,中心像素与A组的5点进行6点平均,否则应进行9点平均。

      另外还有一些非线形的邻域平均方法,例如几何均值和逆滤波均值法,但其计算量相对较大。

      2) 中值滤波
         中值滤波是滤除椒盐噪声的有效方法,但也会滤除细线和小的目标区域。实验表明,当出现的正负脉冲噪声概率超过20%时,使用中值滤波后可能产生比较严重的失真,此时应考虑改进的中值滤波算法——自适应中值滤波。
         自适应中值滤波的步骤如下:
         设A0为对像素点(i,j)进行中值滤波的工作窗口,f(i,j)为像素点(i,j)的灰度值,f_med为A0窗口中的中值,f_min,f_max分别为最大和最小值,A_max为允许的最大窗口。
         <1> 计算z1 = f_med - f_min,z2 = f_med - f_max;
         <2> 若z1 > 0和z2 < 0,则转到<3>;否则增大窗口A0尺寸,若A0<A_max,则重复<1>和<2>,否则输出f(i,j);
         <3> 计算g1 = f(i,j) - f_min, z2 = f(i,j) - f_max;
         <4> 若g1>0和g2<0,则输出f(i,j),否则输出f_med;
      在上述算法中,若f_min<f_med<f_max,则表明f_med不是噪声,转至<3>,然后判断f(i,j)是否是噪声,当f_med和f(i,j)均不为噪声时,优先输出f(i,j)。

      (3) 频域滤波
          主要在于对图像做FFT变换。
  • 相关阅读:
    vue中的$event
    vue实现div拖拽互换位置
    关于marquee首次加载出现闪跳问题
    微信小程序之深色模式下样式的写法
    html动态添加公共页头和页脚
    微信小程序改变上一页面的数据,页面中的通信
    mui中的a标签无效和click无法点击的问题
    mui.DtPicker is not a constructor解决方案
    mui-slider选项卡设置默认index
    flutter环境配置遇到的一些坑
  • 原文地址:https://www.cnblogs.com/wenrenhua08/p/3993617.html
Copyright © 2011-2022 走看看