OpenCV (检测兴趣点)
兴趣点(关键点、特征点),目标识别、图像配准、视觉跟踪、三维重建领域热词之一
检测图像中的角点
角点:两条边缘线的接合点,是一种二维特征,可以被精确地检测(即使是亚像素级精度)
Harris角点:https://blog.csdn.net/qq_41598072/article/details/83651629
OpenCV 中检测 Harris 角点的基本函数是 cornerHarris
基本用法
1 | // 检测Harris角点 |
创建类
为了使用方法便于调节,和结果更好,定义一个检测 Harris 角点的类。
1 |
|
类的使用
基本使用
1 | // Create Harris detector instance |
适合跟踪的特征 GFTT
1 | // GFTT: |
快速检测特征
Fast (加速分割测试获得特征)
基本使用
1 | // FAST feature: |
将图像分割成网格状,对每个小图像进行单独检测。使特征点分布均匀
1 | // The final vector of keypoints |
尺度不变特征的检测
SURF & SIFT
https://evaqwq.github.io/2021/08/02/OPENCV1-5/
1 | // SURF: |
1 | // SIFT: |
多尺度FAST特征的检测
BRISK (二元稳健恒定可拓展关键点)
代码实现
1 | // BRISK: |
原理
BRISK 不仅是一个特征点检测器,它还包含了描述每个被检测关键点的邻域的过程。
为了在不同尺度下检测兴趣点,该算法首先通过两个下采样过程后见一个图像金字塔。
第一个过程从原始图像尺寸开始,然后每一图层(八度)减少一半。第二个过程先将原始图像的尺寸除以1.5得到第一幅图像,然后在这副图像的基础上每一层减少一半,两个过程产生的图层交替在一起。
然后在该金字塔的所有图像上应用FAST特征检测器,提取关键点的条件与SIFT算法类似。首先,将一个像素与相邻的八个像素之一进行强度值的比较,只有是局部最大值的像素才可能成为关键点。这个条件满足后,比较这个点与上下两层的相邻像素的评分;如果它的评分在尺度上也更高,那么就认为它是一个兴趣点。
该算法的关键在于,不同图层具有不同的分辨率。为了精确定位每个关键点,算法需要在尺度和空间两个方面进行插值。
插值基于FAST关键点评分。在空间方面,在3*3的邻域上进行插值;在尺度方面,计算要符合一个一维抛物线,该抛物线在尺度坐标轴上,穿过当前点和上下两层的两个局部关键点,这个关键点在尺度上的位置见前面的图片。
ORB (定向FAST 和 旋转BRIEF)
代码实现
1 | // ORB: |
- Post title:OpenCV (检测兴趣点)
- Post author:Eva.Q
- Create time:2021-08-10 11:15:09
- Post link:https://qyy/2021/08/10/OPENCV/OPENCV1-11/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.