SUSAN检测算法概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SUSAN检测算法
检测算法概述
概述
概述
SUSAN算法是1997年英国牛津大学的Smith等人提出的一种处理灰度图像的方法。探测算子的基本原理是:与每一图像点相关的局部区域具有相同的亮度。下面介绍SUSAN角点检测准则。
1SUSAN算子
将位于圆形窗口模板中心等待检测的象素点称为核心点。假设图像中无纹理存在,称与核心点具有一样的灰度值的区域为USAN(Univalue Segment Assimilting Nucleus)。
图(1)给出了USAN的三种典型形状:
图(1)
由图(1)可以清楚的看到,当核心点位于USAN区域内时,USAN区域面积最大;当核心点位于边 缘时,USAN区域相当于整个领域面积的一半;当核心点的USAN区域最小时,核心点是角点。利用这个原理,Smith等人提出了最小核心值相似区域 (SUSAN,Smallest Univalue Segment Assimilating Nucleus )的角点检测算法。
SUSAN算子使用的是圆形模板进行角点检测,一般使用的模板的半径为3~4个像素,如图(2)所示。
图(2) SUSAN圆形模板
将模板中的各点亮度与核心点的亮度利用下面的函数进行比较,
(1)
在上式中 为图像中像素 的灰度值, t为灰度差别的阈值, 为模板中心的像素, 为其他的像素, C为比较函数。模板中所有的像素都用这个函数进行比较,然后 计算 出函数C的和值n。
(2)
和值n就是USAN(univalue segment assimilating nucleus)区域的像素个数,就是USAN区域的面积,然后把这个面积和几何阈值进行比较,得到最后的响应函数:
(3)
上式中,R为响应函数,g为阈值,通常在探测角点时取值为1/2模板的像素个数,当采用7×7的模板时,g=37×1/2。
2SUSAN算子的改进算法
通常在实际的 应用 中,对于比较函数 我们通常采用下面的比较函数:
(4)
采用这个函数可以使比较函数具有更好的稳定性,当图像中的像素亮度值有很小的变化后,对于c 的取值不会产生很大的 影响 。
灰度差别阈值t能够体现出算法检测到的角点的最小对比度,同时该值也是忽略噪声的最大值。它的大小决定了在不同的对比度图像中提取特征值的多少,因此,对于不同的对比度和噪声的图像,取值t应该不同,从而达到最好的提取效果。
问题分析及改进
及改进
3、问题分析
及改进
SUSAN检测方法是对噪声和图像的旋转具有鲁棒性的优秀的检测方法之一,但是它无法检测所有应该检测出的角点。在一些情况下也会产生错误的检测,漏检和误检等问题都限制其应用。
1)去除伪角点
方法1:计算USAN区域的重心,然后计算重心与模板中心的距离,如果距离较小则不是正确的角点。
方法2:计算USAN区域的重心,判断该重心与模板中心的连线所经过的像素点是否都属于USAN区域,如是,则该模板中心点就是角点。这个方法加强了USAN区域的一致性,在有些图像中尤其是有噪声的情况下是非常必要的。 2)非极大值抑制
在角点所在的位置附近区域,响应函数可能都具有较高的值,而只有在局部有最大值的位置才是角点的正确位置,所以需要进行非极大值抑制。
4 4 编程实现流程编程实现流程编程实现流程
1)使用圆形模板遍历图像;
2)使用式(1)或(4)相似比较函数对模板中各点计算相似度;
3)设置一个阈值,其值小于边缘检测的值,这里取g=n Max /2,;利用式(3)产生角点响应;
4)去除伪角点;
5)非极大值抑制。
2014-1-9