opencv學習之路(33)、SIFT特征點提取(一)


一、簡介

二、OpenCV中的SIFT算法接口

 

#include "opencv2/opencv.hpp"
#include <opencv2/nonfree/nonfree.hpp>//SIFT
#include <vector>
#include<iostream>
using namespace std;
using namespace cv;

void main()
{     
    Mat srcImg1 = imread("E://00.jpg");
    Mat srcImg2 = imread("E://01.jpg");
    //定義SIFT特征檢測類對象
    SiftFeatureDetector siftDetector;//SIFT=SiftFeatureDetector=SiftDescriptorExtractor    別名//定義KeyPoint變量
    vector<KeyPoint>keyPoints1;
    vector<KeyPoint>keyPoints2;
    //特征點檢測
    siftDetector.detect(srcImg1, keyPoints1);
    siftDetector.detect(srcImg2, keyPoints2);
    //繪制特征點(關鍵點)
    Mat feature_pic1, feature_pic2;
    //drawKeypoints(srcImg1, keyPoints1, feature_pic1, Scalar(0, 0, 255));
    drawKeypoints(srcImg2, keyPoints2, feature_pic2, Scalar(0, 0, 255));
    drawKeypoints(srcImg1, keyPoints1, feature_pic1, Scalar::all(-1), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);//顏色隨機,帶有方向
    //drawKeypoints(srcImg2, keyPoints2, feature_pic2, Scalar::all(-1), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
    //顯示原圖
    imshow("src1", srcImg1);
    imshow("src2", srcImg2);
    //顯示結果
    imshow("feature1", feature_pic1);
    imshow("feature2", feature_pic2);

    waitKey(0);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM