学习opencv有感(二)-2维特征Feature2D
2013-11-04 22:35
363 查看
/*在提取surf特征时,从官方文档复制过来的代码,编译报错。查了下是包含文件问题,SurfFeatureDetector在#include <opencv2/nonfree/features2d.hpp>文件中,以前版本是在#include "opencv2/features2d/features2d.hpp"中,SurfDescriptorExtractor在#include<opencv2/legacy/legacy.hpp>中,所以要包含那两个文件。代码如下:/**
* @file SURF_descriptor
* @brief SURF detector + descritpor + BruteForce Matcher + drawing matches with OpenCV functions
* @author A. Huaman
*/
* @file SURF_descriptor
* @brief SURF detector + descritpor + BruteForce Matcher + drawing matches with OpenCV functions
* @author A. Huaman
*/
#include <stdio.h> #include <iostream> #include "opencv2/core/core.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/highgui/highgui.hpp" #include <opencv2/nonfree/features2d.hpp> #include<opencv2/legacy/legacy.hpp> using namespace cv; void readme(); /** * @function main * @brief Main function */ int main( ) { Mat img_1 = imread( "1.jpg", CV_LOAD_IMAGE_GRAYSCALE ); Mat img_2 = imread( "2.jpg", CV_LOAD_IMAGE_GRAYSCALE ); if( !img_1.data || !img_2.data ) { return -1; } //-- Step 1: Detect the keypoints using SURF Detector int minHessian = 400; SurfFeatureDetector detector( minHessian ); std::vector<KeyPoint> keypoints_1, keypoints_2; detector.detect( img_1, keypoints_1 ); detector.detect( img_2, keypoints_2 ); //-- Step 2: Calculate descriptors (feature vectors) SurfDescriptorExtractor extractor; Mat descriptors_1, descriptors_2; extractor.compute( img_1, keypoints_1, descriptors_1 ); extractor.compute( img_2, keypoints_2, descriptors_2 ); //-- Step 3: Matching descriptor vectors with a brute force matcher BruteForceMatcher< L2<float> > matcher; std::vector< DMatch > matches; matcher.match( descriptors_1, descriptors_2, matches ); //-- Draw matches Mat img_matches; drawMatches( img_1, keypoints_1, img_2, keypoints_2, matches, img_matches ); //-- Show detected matches imshow("Matches", img_matches ); waitKey(0); return 0; }
相关文章推荐
- OpenCV学习笔记(九)——2维特征Feature2D
- OpenCV中feature2D学习——SIFT和SURF算子实现特征点提取与匹配
- OpenCV中feature2D学习——FAST特征点检测
- OpenCV中feature2D学习——FAST特征点检测与SIFT/SURF/BRIEF特征提取与匹配
- OpenCV中feature2D学习——SIFT和SURF算子实现特征点提取与匹配
- OpenCV学习笔记——2维特征Feature2D,SURF
- OpenCV中feature2D学习——SURF和SIFT算子实现特征点检测
- OpenCV学习笔记:基于Haar特征的人脸检测
- OpenCV学习笔记(29)KAZE 算法原理与源码分析(三)特征检测与描述
- 学习OpenCV——HoG特征详解(特征点篇)
- OpenCV4Android学习之图像特征匹配算法
- OpenCV学习笔记(十八) SIFT特征
- opencv学习(6)——HOG参数简介及Hog特征维数的计算
- OpenCV学习笔记__使用FLANN进行特征点匹配
- Opencv2系列学习笔记12(检测fast特征)
- 学习OpenCV——ORB & BRIEF(特征点篇)&Location
- opencv 特征点提取算法 SIFT SURF ORB FAST LBP学习(一)
- opencv学习之 特征检测与匹配
- Opencv2系列学习笔记12(检测fast特征)
- 学习OpenCV——Fast(特征点篇) (&DrawMatchFlags)