图像特征之SUSAN角点检测

原文站点:https://senitco.github.io/2017/07/01/image-feature-susan/

  SUSAN(Small univalue segment assimilating nucleus)是一种基于灰度图像以及窗口模板的特征点获取方法,适用于图像中边缘和角点的检测,对噪声鲁棒,而且具有简单、有效、计算速度快等特点。

原理概述

  SUSAN算子采用一种近似圆形的滑动窗口模板,邻域窗口内的每个像素点的灰度值和中心像素作比较,若两者的灰度差值小于一定阈值,则认为该像素点与中心像素(核)具有相似的灰度值,满足这一条件的像素组成的区域称为吸收核同值区(Univalue Segment Assimilating Nucleus, USAN)。


图像特征之SUSAN角点检测_第1张图片

如上图所示,当圆形模板处于灰度均匀区域(背景或目标内),USAN区域面积最大;当模板移向图像边缘时,USAN面积逐渐变小,模板中心处于边缘位置时,USAN面积为最大值的1/2;当模板中心位于角点处时,USAN面积最小,约为最大值的1/4。因此,USAN面积越小,其中心像素为角点的概率就越大。通过计算每个像素的USAN值,并与给定阈值作比较,如果该像素的USAN值小于给定阈值,则认为是一个角点。USAN的三维显示如下图所示:


usan.jpg

算法步骤

  • 定义一个半径为r(r=3)的圆形滑动模板,比较模板内像素与中心像素的灰度值差异,构成USAN区域。公式定义如下:
    c(r,r0)=1,|I(r)I(r0)|t 0,|I(r)I(r0)|>t

    式中, r_0 表示模板核(中心像素)在图像中位置, r 则是模板内其他像素的位置,I(r)表示图像灰度值。为了得到更稳定的结果,避免相似度函数在阈值边界处发生突变,亦可采用下式计算:
    c(r,r0)=e(I(r)I(r0)t)6
  • 计算USAN区域的面积
    n(r0)=Σrc(r,r0)
  • 计算角点响应值
    R(r0)={gn(r0),n(r0)<g 0,n(r0)g

    阈值可取 g=nmax/2 ,USAN面积达到最小时,角点响应值达到最大。
  • 在邻域内对角点响应值做非极大值抑制

参数分析

  SUSAN算子采用的是圆形模板,窗口半径为r=3,窗口内包含37个像素,如下图所示:


图像特征之SUSAN角点检测_第2张图片

在进行角点检测时,需要确定两个重要的参数——g值和t值。阈值g决定了USAN区域面积的最大值,以及所检测角点的尖锐程度,g值越小,检测到的角点越尖锐。阈值t表示所能检测角点的最小对比度,决定了角点提取的数量,t值越小,可提取的角点数量越多。对于不同对比度和噪声的图像,应取不同的阈值。

算法特点

  • 在对边缘和角点进行检测时,不涉及微分操作,因此对噪声的鲁棒性较好
  • SUSAN算子比较的是邻域像素的灰度相似性,具有光强不变性、旋转不变性;而且检测算子不依赖模板尺寸,在一定程度具备尺度不变性
  • 参数较少,计算较快,抗干扰能力强

reference

  • Paper: SUSAN — A New Approach to Low Level Image Processing
  • http://www.cnblogs.com/luo-peng/p/5615359.html
  • http://blog.csdn.net/tostq/article/details/49305615
  • http://xandl.cn/2017/03/23/extraction/

你可能感兴趣的:(image,图像处理,计算机视觉,susan)