Здесь - это сайт БЫСТРОГО изобретателя. FAST означает Особенности теста ускоренного сегмента . Здесь - это короткая запись в Википедии об алгоритмах, основанных на AST. Кроме того, здесь - это хороший обзор различных детекторов функций, используемых в настоящее время.
FAST фактически уже реализован OpenCV, если вы хотите использовать их реализацию.
РЕДАКТИРОВАТЬ: Вот короткий пример, который я создал, чтобы показать вам, как использовать детектор FAST:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <vector>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
Mat far = imread("far.jpg", 0);
Mat near = imread("near.jpg", 0);
Ptr<FeatureDetector> detector = FeatureDetector::create("FAST");
vector<KeyPoint> farPoints;
detector->detect(far, farPoints);
Mat farColor;
cvtColor(far, farColor, CV_GRAY2BGR);
drawKeypoints(farColor, farPoints, farColor, Scalar(255, 0, 0), DrawMatchesFlags::DRAW_OVER_OUTIMG);
imshow("farColor", farColor);
imwrite("farPoints.jpg", farColor);
vector<KeyPoint> nearPoints;
detector->detect(near, nearPoints);
Mat nearColor;
cvtColor(near, nearColor, CV_GRAY2BGR);
drawKeypoints(nearColor, nearPoints, nearColor, Scalar(0, 255, 0), DrawMatchesFlags::DRAW_OVER_OUTIMG);
imshow("nearColor", nearColor);
imwrite("nearPoints.jpg", nearColor);
waitKey();
return 0;
}
Этот код находит следующие характерные точки для дальнего и ближнего изображений:
Как вы можете видеть, ближнее изображение имеет гораздо больше функций, но похоже, что та же самая базовая структура обнаруживается с дальним изображением. Таким образом, вы должны быть в состоянии соответствовать этим. Взгляните на descriptor_extractor_matcher.cpp . Это должно начать вас.
Надеюсь, это поможет!