一、原理
如果在这个大小为16个像素的圆上有n个连续的像素点,它们的像素值要么都比Ip+t大,要么都比Ip−t小,那么它就是一个角点。(如图1中的白色虚线所示)。n的值可以设置为12或者9,实验证明选择9可能会有更好的效果。
FAST算子是通过邻域像素的比对来检测特征点,所以没有多尺度的问题。
二、OpenCV 接口
1、FAST函数
void FASTX(InputArray image, vector<KeyPoint>& keypoints, int threshold, bool nonmaxSuppression=true, int type)
image 是输入的图像,
keypoints 是返回的特征点,
threshold 是定义的阈值,
第四个决定是否使用非极大值抑制。
1、
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat img = imread("house.png");
//Keypoint类型
std::vector<KeyPoint> keypoints;
//调用FAST