SIFT特征点检测实现

 

 

 

 

 

 

 

 

 

 

 

 检测代码:ios

 

 1 #include <opencv2/opencv.hpp>
 2 #include <opencv2/xfeatures2d.hpp>
 3 #include <iostream>
 4 
 5 using namespace cv;  6 using namespace std;  7 using namespace cv::xfeatures2d;  8 
 9 int main(int argc, char** argv) { 10     Mat src = imread("L:/4.jpg"); 11     if (src.empty()) { 12         printf("could not load image...\n"); 13         return -1; 14  } 15     namedWindow("input image", CV_WINDOW_AUTOSIZE); 16     imshow("input image", src); 17 
18     int numFeatures = 400;    //检测400个特征点 
19     Ptr<SIFT> detector = SIFT::create(numFeatures); 20     vector<KeyPoint> keypoints; 21     detector->detect(src, keypoints, Mat());  //开始检测
22     printf("Total KeyPoints : %d\n", keypoints.size());  //打印keypoints的数量信息
23 
24  Mat keypoint_img; 25     drawKeypoints(src, keypoints, keypoint_img, Scalar::all(-1), DrawMatchesFlags::DEFAULT); 26     //将关键点画到图上
27     namedWindow("SIFT KeyPoints", CV_WINDOW_AUTOSIZE); 28     imshow("SIFT KeyPoints", keypoint_img); 29 
30     waitKey(0); 31     return 0; 32 }

 

结果:spa

相关文章
相关标签/搜索