FAST(Features from Accelerated Segment Test,加速分
割测试获得特征)算子专门用来快速检测兴趣点——只需对比几个像素,就可以判断它是否为关键点。
因为 OpenCV 有检测特征点的公共接口,所以调用任何特征点检测器都非常容易。本节介绍的是 FAST 检测器。顾名思义,它的设计目的就是从图像中快速检测兴趣点:
// 关键点的向量
std::vector<cv::KeyPoint> keypoints;
// FAST 特征检测器,阈值为 40
cv::Ptr<cv::FastFeatureDetector> ptrFAST =
cv::FastFeatureDetector::create(40);
// 检测关键点
ptrFAST->detect(image,keypoints);
OpenCV 也提供了在图像上画关键点的通用函数:
cv::drawKeypoints(image, // 原始图像
keypoints, // 关键点的向量
image, // 输出图像
cv::Scalar(255,255,255), // 关键点的颜色
cv::DrawMatchesFlags::DRAW_OVER_OUTIMG); // 画图标志
选择这个画图标志后,输入图像上会画出关键点。