zoukankan      html  css  js  c++  java
  • 08-局部阈值分割算法总结

     常见的图像二值化算法大致可分为全局阈值方法与局部阈值方法这两种类型。全局方法就是一个阈值,像素值大于此值的为1,小于此值的为0。局部方法就是对每一个像素求阈值,大于此值为1,小于此值为0。其中OTSU算法是全局阈值的代表,而Sauvola算法则是局部阈值方法的标杆。Otsu(大津法),相关介绍很多,这里不做介绍。重点介绍局部阈值分割算法.

    1. Bersen算法原理

      1) 先人为设定两个值S与TT(Bemsen最初设S为15,TT设为128);

           2)计算以图像中任意像素尸为中心的大小为k×k窗口内的所有像素的最大值M与最小值N,两者的均值T,

                如果M-N大于S,则当前P的阈值为T;

                若小于S,则表示该窗口所在区域灰度级灰度级差别较小,那么窗口在目标区或在背景区;

           3)再判断T与TT的关系,若T>TT则当前点灰度值为255,否则当前点灰度值为0。

    缺点:耗时大.

    2. Niblack算法

      

       T是阈值,m是图像邻域窗口的均值,s是邻域窗口的标准差,K是预先设定的修正值。

       Niblack根据以像素点为中心的邻域内的点的情况为此像素计算阈值.

       Niblack法的优点:

         对每一个像素点都独立的跟据此像素点的邻域的情况来计算门限,对于和邻域均值m(x,y)相近的像素点判断为背景而反之判断为前景;而具体相近到什么程度由标准差s(X’y)和修正系数k来决定,这保证了这种的方法的灵活性。

       Niblack法的不足:

          由于要利用域r×r模板遍历图像,导致边界区域(r-1)/2的像素范围内无法求取阈值;同时当进行图像遍历时,如果域r×r范围内都是背景,经NIBLACK计算后必有一部分被确定为目标,产生伪噪声。

     总之,用Niblack方法进行图像分割时,选择的处理模板窗口R*R大小的选择很关键,选择的空间太小,则噪声抑制的效果不理想,目标主体不够突出,选择的空间太大,则目标的细节会被去除而丢失信息。

    3. Sauvola算法

    Sauvola算法的输入是灰度图像,它以当前像素点为中心,根据当前像素点邻域内的灰度均值与标准方差来动态计算该像素点的阈值。

     假定当前像素点的坐标为(x,y),以该点为中心的领域为r*r,g(x,y)表示(x,y)处的灰度值,Sauvola算法的步骤为:

    参考:https://livezingy.com/derivations-of-sauvola-formula/

  • 相关阅读:
    Linux 学习 之 bash
    C++ Knowledge series 4
    Linux 下, 安装Android Studio
    Java Knowledge series 1
    C++ Knowledge series 3
    Linux,MD5
    Using ASP.Net WebAPI with Web Forms
    CSS浮动属性Float到底什么怎么回事,下面详细解释一下
    什么是CSS清除浮动?
    Jquery ajax调用webservice总结
  • 原文地址:https://www.cnblogs.com/zhaopengpeng/p/13300795.html
Copyright © 2011-2022 走看看