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

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

原理概述

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

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

算法步骤

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

    c(r→,r0→)=⎧⎩⎨1,|I(r→)−I(r0→)|≤t 0,|I(r→)−I(r0→)|>t

    c(\overrightarrow{r}, \overrightarrow{r_0}) = \begin{cases} 1,|I(\overrightarrow{r}) - I(\overrightarrow{r_0})| \leq t \\\ 0,|I(\overrightarrow{r}) - I(\overrightarrow{r_0})| > t\end{cases}
    式中,r_0r\_0表示模板核(中心像素)在图像中位置,rr则是模板内其他像素的位置,I(r)I(r)表示图像灰度值。为了得到更稳定的结果,避免相似度函数在阈值边界处发生突变,亦可采用下式计算:

    c(r,r0)=e−(I(r)−I(r0)t)6

    c(r,r_0)=e^{-(\dfrac{I(r)-I(r_0)}{t})^6}

  • 计算USAN区域的面积
    n(r0)=Σrc(r,r0)

    n(r_0) = \Sigma_r c(r, r_0)

  • 计算角点响应值
    R(r0)={g−n(r0),n(r0)<g 0,n(r0)≥g

    R(r_0) = \begin{cases} g - n(r_0),n(r_0)
    阈值可取g=nmax/2g=n_{max}/2,USAN面积达到最小时,角点响应值达到最大。

  • 在邻域内对角点响应值做非极大值抑制

参数分析

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

在进行角点检测时,需要确定两个重要的参数——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/

图像特征之SUSAN角点检测相关推荐

  1. 图像局部特征学习(笔记1之SUSAN角点检测)

    SUSAN(smallest univalue segment assimilating nucleus最小核值相似区) SUSAN是角点检测的一种,其原理跟Harris很相像,Harris是利用一个 ...

  2. SUSAN角点检测与匹配算法代码(OpenCV)

    SUSAN角点检测与匹配算法 测试环境Ubuntu+OpenCV2.4.3 SUSAN角点检测代码 SUSAN(Small univalue segment assimilating nucleus) ...

  3. susan角点检测算法

    SUSAN算法是1997年牛津大学的Smith等人提出的一种处理灰度图像的方法,它主要是用来计算图像中的角点特征.SUSAN算法选用圆形模板(如图1所示).将位于圆形窗口模板中心等待检测的像素点称为核 ...

  4. SUSAN角点检测算法实现(详细版)

    前言 无 一.SUSAN算子是什么? SUSAN ( Small univalue segment assimilating nucleus) 算子是一种基于灰度的特征点获取方法, 适用于图像中边缘和 ...

  5. SUSAN角点检测算法,及其Matlab实现

    1.SUSAN角点检测算法步骤 (1)在图像上放置一个37个像素的圆形模板,模板在图像上滑动,依次比较模板内各个像素点的灰度与模板核的灰度,判断是否属于USAN区域.判别函数如下: 其中,r⃗0{{\ ...

  6. 基于光强的角点检测(SUSAN角点检测、FAST角点检测、FAST-ER角点检测)

    Corner Feature Detector(Intensity-Based) 基于光强比较的角点检测,直接比较光强(像素灰度值),而不计算梯度.所以实时性更好,所需的存储空间更小. SUSAN 角 ...

  7. SUSAN角点检测实现

    参考:Susan角点检测python实现 (边缘检测.角点检测.重心计算.非极大值抑制) void susan(cv::Mat& src, cv::Mat& dst, float t) ...

  8. Susan角点检测python实现 (边缘检测、角点检测、重心计算、非极大值抑制)

    Susan角点检测(边缘检测.角点检测.重心计算.非极大值抑制) 写在前面 黄宁然--看过你看过的算法,觉得好难. 参考文献镇楼 [1]https://blog.csdn.net/tostq/arti ...

  9. Opencv开发笔记(三):使用形态学滤波对图像进行边缘及角点检测

    形态学滤波可以用于检测图像中指定的特征点,接下来这篇文章我们运用Opencv中的形态学函数来检测灰度图中的直角和角点. 首先我们为了方便使用先封装一个名称为MorphoFeatures的类,然后就可以 ...

最新文章

  1. ccf Markdown
  2. LightOJ - 1038 Race to 1 Again 基础期望概率 dp
  3. mybatis configuration的内容必须匹配问题
  4. usb网络linux系统安装教程,Linux系统入门学习:如何在树莓派上安装USB网络摄像头...
  5. HDU2102 A计划
  6. DTS开发记录(序)
  7. 基于CUDA的三维VTI介质逆时偏移与ADCIGs提取
  8. 【jmeter安装】jmeter下载安装超详细简单步骤
  9. GPS广播星历和精密星历的下载
  10. 绿米开关如何重置_绿米智能开关评测
  11. 智能POS删除文件和数据库操作步骤
  12. python 群发邮件数量限制_用邮件群发平台群发邮件的数量有限制吗?一般可以发多少?...
  13. 多目标人工秃鹫优化算法(MATLAB源码分享,智能优化算法) 提出了一种多目标版本的人工秃鹫优化算法(AVOA)
  14. 《2022中国RPA采购指南》报告正式发布
  15. cross_val_score的 scoring参数值解析
  16. html元素的overflow属性详解
  17. 收银系统可以管理童装店衣服不同的尺码吗?
  18. 重装系统后故障(报错:reboot and select proper boot deviceor insert boot media in selected boot device)
  19. 建筑工程质量竣工资料软件
  20. 基本知识:block/sleep/hang/宕机/hook/stub/offload/overhead/watermark

热门文章

  1. 旅游科技公司常用的运维管理服务器工具
  2. 智能汽车大爆发,车企创新为何首选华为云?
  3. SWT(Detecting Text in Natural Scenes with Stroke Width Transform)算法详解
  4. 原生CANVAS语法实现的封装折线图和饼图
  5. 第55课:60分钟内从零起步驾驭Hive实战学习笔记
  6. 【转】掌握5个职场沟通技巧,让你成为会说话的人!
  7. php股票预警,超强的盘中预警公式
  8. cad中lisp文件给恶作剧_[软件心得]我用的CAD,LISP加载文件
  9. Nacos(第一篇)_Springboot2.x+Nacos配置管理中心
  10. scala列表-List.tabulate方法