AGAST(Adaptive and Generic Accelerated Segment Test)角点域的特征匹配算法是一种计算二元决策树(角检测器)的技术, 通过组合两棵树,角点检测器自动适应环境,并为图像区域提供最有效的决策树,只有一个像素延迟。因此,它产生了一个角检测器,该检测器速度更快且无需进行训练,同时保持与(完整)FAST 角检测器相同的角响应和可重复性。我们将此检测器称为 AGAST。

API介绍

static Ptr<AgastFeatureDetector> create( int threshold=10,bool nonmaxSuppression=true,AgastFeatureDetector::DetectorType type = AgastFeatureDetector::OAST_9_16);
/*******************************************************************
*			threshold: 				响应阈值			
*			nonmaxSuppression:	    是否做非最大抑制
*			type:					邻域类型
*********************************************************************/
virtual void detect( InputArray image,std::vector<KeyPoint>& keypoints,InputArray mask=noArray());
/*******************************************************************
*			image: 				输入图				
*			keypoints:	        角点信息
*			mask:				计算亚像素角点区域大小			
*********************************************************************/
void drawKeypoints( InputArray image, const std::vector<KeyPoint>& keypoints, InputOutputArray outImage,const Scalar& color=Scalar::all(-1), DrawMatchesFlags flags=DrawMatchesFlags::DEFAULT );
/*******************************************************************
*			image: 				输入图				
*			keypoints:	        角点信息
*			outImage:			计算亚像素角点区域大小
*			color:  			颜色
*			flags:				标记			
*********************************************************************/

综合代码

#include <iostream>
#include <map>
#include <new>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
class AGASTFeature
{
public:
	AGASTFeature() :img(imread("mm.jpg"))
	{
		result["img"] = img;
	}
	void TestAGAST()
	{
		Ptr<AgastFeatureDetector> agast = AgastFeatureDetector::create();
		agast->detect(img, point);
		drawKeypoints(img, point, result["agast"], Scalar(255, 0, 255));
	}
	void Show()
	{
		for (auto& v : result)
		{
			imshow(v.first, v.second);
		}
		waitKey(0);
	}
protected:
	Mat img;
	vector<KeyPoint> point;
	map<string, Mat> result;
};
int  main()
{
	unique_ptr<AGASTFeature> p(new AGASTFeature);
	p->TestAGAST();
	p->Show();
	return 0;
}

OpenCV AGAST特征检测_#include