本文着重介绍了用于图像特征点检测的算法,FAST算法,以及使用matlab的实现。
FAST算法是一种拐点检测算法,其主要应用于提取图像中的特征点,在动态成像的一系列图像中追踪定位对象。众所周知,我们生活的世界是动态化的,3D的,如何关联动态化过程中的平移,畸变,旋转对象,对每一帧的图像与上一帧之间的空间关系进行分析,很大程度上需求我们在每一帧中找到对应的关键点。FAST方法,拐点检测方法,简单来说就是用于提取图像中的关键点的算法,为进一步的图像处理,包括相机标定,SLAM打下了基础。
1. FAST算法解析
FAST拐点检测算法使用了一个包含了16个像素点的圆来判断目标点P是不是一个真正意义上的拐点。这16个像素点标序号为1至16。对于每一个候选像素点P,其强度为 I p I_p Ip (灰度图中即为该像素点的灰度值)。如果该圆中N个连续像素都比候选像素点P的强度亮很多,或都比候选像素点P的强度暗很多,那么P就被分类为一个拐点。 这个也比较好理解,即找出局部范围内最亮或最暗的点,作为局部图像的关键点。P为拐点所包含的情况如下:
- 条件1 : 一系列 N N N个连续的像素点 S S S, ∀ s ∈ S , I x > I p + t {\forall} s\in S, I_x > Ip + t ∀s∈S,Ix>Ip+t
- 条件2 : 一系列 N N N个连续的像素点 S S S, ∀ s ∈ S , I x < I p − t {\forall} s\in S, I_x < Ip - t ∀s∈S,