本文共 1292 字,大约阅读时间需要 4 分钟。
FREAK特征原理:
/* *@function FREAK_Detect.cpp *@brief 使用FREAK特征检测并匹配目标 *@author ltc *@date 19:31 Thursday,December 3rd,2015*/#include匹配结果:#include #include #include #include #include using namespace std;using namespace cv;int main(int argc,char* argv[]){ Mat queryImage,trainImage; queryImage=imread("1.jpg",IMREAD_COLOR); trainImage=imread("2.jpg",IMREAD_COLOR); if(queryImage.empty() || trainImage.empty()) { return -1; } vector queryKeyPoint,trainKeyPoint; Mat queryDescriptor,trainDescriptor; SurfFeatureDetector freakDetector; freakDetector.detect(trainImage,trainKeyPoint); freakDetector.detect(queryImage,queryKeyPoint); FREAK freakDescriptorExactor; freakDetector.compute(queryImage,queryKeyPoint,queryDescriptor); freakDetector.compute(trainImage,trainKeyPoint,trainDescriptor); drawKeypoints(queryImage,queryKeyPoint,queryImage); drawKeypoints(trainImage,trainKeyPoint,trainImage); imshow("query",queryImage); imshow("train",trainImage); vector matches; BFMatcher matcher(NORM_L2); matcher.match(queryDescriptor,trainDescriptor,matches); Mat image_match; drawMatches(queryImage,queryKeyPoint,trainImage,trainKeyPoint,matches,image_match); imshow("image_match",image_match); waitKey(0); return 0;}