OpenCV_Corner Detect with FastFeatureDetector(基于FAST的角点检测) 及 SUSAN算子

目录

一. 概念

Fast角点检测内部实现:

优缺点:

二. 代码

三. 运行结果

四. 拓展对比_SUSAN算子

          简介:

内部实现:

计算步骤:

优缺点:


一. 概念

Fast角点检测内部实现:

cv:FastFeatureDectctor

    Harris算法的一个简化: 利用少数像素比较数量,来确定是否接受一个特征点。

    通过检测候选像素,周围一圈的像素 16个点来决定是否可以接受一个特征点,如果与中心点差异较大(阈值控制)的像素可以组成一个连续的圆弧,并且弧长大于圆周长的3/4,那么我们认为找到了一个特征点。

    效率高的原因: 首先价检测周围 上下左右 4个点,如果至少有3个点的灰度值大于或小于中心像素,再去计算圆周上的其他点,如果不成立,直接舍弃。实践中,大部分像素点可以直接被舍弃,因此速度比较高。

优缺点:

优点:  运算速度快,效率高。

缺点:  当图片中的噪点较多时,它的健壮性并不好

       FAST不具备尺度不变特,

       特征点没有方向信息,失去了旋转不变性

类似算法 susan算子

二. 代码

#include "stdafx.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/features2d/features2d.hpp> //引用cv::KeyPoint 特征检测器通用接口

int main()
{
	cv::Mat image = cv::imread("../../aTestImage/Buildingsm.jpg", 0);
	std::vector <cv::KeyPoint> keypoints;
	cv::FastFeatureDetector fast(40);
	fast.detect(image, keypoints); 
	//检测中心点一圈圆周上16个像素 //与中心点差异较大的像素组成的圆弧 若能构成圆周的3/4,则认为找到了特征点

	cv::drawKeypoints(image, keypoints, image,cv::Scalar(255, 255,255), cv::DrawMatchesFlags::DRAW_OVER_OUTIMG);

	cv::namedWindow("FAST Features");
	cv::imshow("FAST Features", image);
	cv::waitKey(0);
    return 0;
}

三. 运行结果

四. 拓展对比_SUSAN算子

简介:

简称:Smallest Univalue Segment Assimilating Nucleus 最小核心值相似区域算子  ['suzn]

应用: 检测直线和角点

内部实现:

    opencv中: cvGoodFeaturesToTrack

    用一个圆形模板在图像上移动,若模板内的像素灰度模板中心(被称为“核”——Nucleus)的像素灰度值之差小于一定的阈值,则认为该点与核Nucleus具有相同的灰度,满足该条件的像素组成的区域就称为USAN。根据USAN区域的大小来检测边缘、角点等特征的位置和方向信息。

    分析图像可知,边缘处的点的USAN值,小于或等于最大值一半。在边缘或角点处的USAN值最小

计算步骤:

    1.  根据相似度 (像素差值的大小),二值化圆形模板中(37个像素=6*6)的每个像素值

    2.  统计USAN区域的值 我们可以称为USAN值,反映USAN区域的大小。

    3.  使用非极大值抑制来寻找角点。计算边缘响应,通过设定一个阈值,确定边缘或角点

               提取边 = 3/4 * 最大USAN值

               角点 = 1/2 * 最大USAN值

优缺点:

优点: 

        运算量也比较小 (0 1 运算 )

       抗噪声能力很强,基于对周边象素的灰度比较,完全不涉及梯度的运算

       既能检测边缘,又能检测角点

缺点: 

       准确性受选择阈值的影响,选择合适的阈值需要功夫。

       角点似乎比不过harris,边缘似乎比不过Canny

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

惊鸿一博

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值