角点检测和匹配之Harris与FAST角点检测

本文详细介绍了计算机视觉中的角点检测,包括Harris角点检测的原理与OpenCV中的`cornerHarris`、`goodFeaturesToTrack`函数应用,以及FAST角点检测的快速检测方法,并提供了相关示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一章主要内容:

       1. Harris角点检测

       2. FAST特征检测

      3. 尺度不变的SURF特征检测

      4.SURF检测描述

一、引言

        在计算机视觉中,特征点或称兴趣点,角点(即图像的极值点,线段的终点,曲线曲率最大的点或水平、竖直方向上属性最大的点等等)被广泛应用。这些特征点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。特征点在保留图像图形重要特征的同时,可以代替整幅图像的处理,有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。

       特征点检测就是是对有具体定义的、或者是能够具体检测出来的特征点的检测。目前检测方法很多,具体分有三大类基于灰度图像的角点检测、基于二值图像的角点检测、基于轮廓曲线的角点检测。基于灰度图像的角点检测又可分为基于梯度、基于模板和基于模板梯度组合3类方法,其中基于模板的方法主要考虑像素领域点的灰度变化,即图像亮度的变化,将与邻点亮度对比足够大的点定义为角点。常见的基于模板的角点检测算法有Kitchen-Rosenfeld角点检测算法,Harris角点检测算法、KLT角点检测算法及SUSAN角点检测算法。和其他角点检测算法相比,SUSAN角点检测算法具有算法简单、位置准确、抗噪声能力强等特点。

        特征点的应用也很广泛,去解决一些重要的图像问题,如目标识别,图像匹配,视觉跟踪,3D重建等等。

二、Harris角点检测

       角点是图像局部特征,很方便的在图像中定位(甚至是半像素精确定位),而且经常出现在人造的物体(如墙,门,窗户,桌子等等)中,所以应用广泛。

       Harris角点检测是最经典的检测方法,基本原理就是,角点的水平和竖直方向梯度都比较大(经过数学推导,两个特征值即代表水平和垂直方向的强度),边缘点是水平或竖直梯度有一个比较大,平坦点是水平和竖直梯度都比较小。因此主要是计算方向梯度,然后根据特定门限判断是否是最大,确定角点。

       opencv中提供两个Harris角点检测的函数,

       2.1 cornerHarris

       第一个比较简单,直接调用即可

       函数头文件:       

#include <opencv2/imgproc/imgproc.hpp>
       函数定义:

//! computes Harris cornerness criteria at each image pixel
CV_EXPORTS_W void cornerHarris( InputArray src, OutputArray dst, int blockSize,
                                int ksize, double k,
                                int borderType=BORDER_DEFAULT );
     函数参数说明:

     blockSize:角点是两个边缘的连接点,因此在局部范围内,角点是所有方向上梯度最大的点,blockSize就是设置局部检测窗口大小

           计算个方向变化的公式:

     ksize:在计算个方向变化强度的时候使用了Sobel求其导数,该参数就是设置Sobel滤波器参数。

           R计算可以近似为:

     k: 两个特征值都不大于门限时,该点是普通点;当只有一个特征值大于门限时,是边缘点;当两个特征值都大于门限时,是角点。由于同时判

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值