opencv学习之路(33)SIFT特征点提取

Posted 进击的小猴子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}

以上是关于opencv学习之路(33)SIFT特征点提取的主要内容,如果未能解决你的问题,请参考以下文章

opencv学习之路(34)SIFT特征匹配

SIFT图像特征提取 python3.6 + opencv3.3代码

opencv提供了多少个特征点的descriptor

OpenCV-Python之——图像SIFT特征提取

随时更新———个人喜欢的关于模式识别机器学习推荐系统图像特征深度学习数值计算目标跟踪等方面个人主页及博客

OpenCV+Python特征提取算法与图像描述符之SIFT / SURF / ORB