您的位置:首页 > 运维架构

视觉SLAM/opencv特征匹配相关函数

2019-02-16 15:13 597 查看

视觉SLAM/opencv特征匹配相关函数

  • 2、计算描述子DescriptorExtractor
  • 3、另一种方法:detectAndCompute函数
  • 4、匹配DescriptorMatcher
  • 5、匹配筛选
  • 6、关于FeatureDetector与DescriptorExtractor的说明
  • 1、提取特征FeatureDetector

    1.1用法:

    Ptr<FeatureDetector> detecor = ORB::create();/Ptr<ORB> detecor = ORB::create();/Ptr<SURF> detector = SURF::create( minHessian );
    vector<KeyPoint> keypoints_1;
    detector->detect( img_1, keypoints_1);

    1.2数据结构:

    1.3其中的成员函数detect的数据结构

    1.4其中ORB::Create函数的数据结构

    CV_WRAP static Ptr<ORB> create(int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31,
    int firstLevel=0, int WTA_K=2, int scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20);

    1.5 KeyPoint的数据结构

    2、计算描述子DescriptorExtractor

    2.1用法

    Ptr<DescriptorExtractor> descriptor = ORB::create();
    Mat descriptors_1;
    descriptor->compute( img_1, keypoints_1,descriptors_1 );
    //在descriptors_1中每一行roll储存一个对应的关键点的描述子

    2.2数据结构


    2.3其中子函数compute的数据结构


    3、另一种方法:detectAndCompute函数

    3.1用法

    3.2数据结构

    4、匹配DescriptorMatcher

    4.1 用法

    Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create( "BruteForce-Hamming" );
    vector<Dmatch> match;
    matcher->match(descriptors_1, descriptors_2, match);

    4.2DMatch的数据结构

    调用方式:match.distance,可以与double类型的数据比较

    4.3、DescriptorMatcher的数据结构(部分)

    class CV_EXPORTS_W DescriptorMatcher : public Algorithm
    {
    public:
    enum
    {
    FLANNBASED            = 1,
    BRUTEFORCE            = 2,
    BRUTEFORCE_L1         = 3,
    BRUTEFORCE_HAMMING    = 4,
    BRUTEFORCE_HAMMINGLUT = 5,
    BRUTEFORCE_SL2        = 6
    };

    5、匹配筛选

    保留距离小于max(30.0,2*最小距离)的匹配

    6、关于FeatureDetector与DescriptorExtractor的说明

    FeatureDetector与DescriptorExtractor都是cv::Feature2D的别名,所以两者是相同的,以上分开使用是为了能体现特征提取描述子计算的步骤,第一二步可以用下面的代码来替代

    cv::Ptr<cv::Feature2D> feature = cv::ORB::create();
    feature->detect( img_1, keypoints_1 );
    feature->compute( img_1, keypoints_1, descriptors_1);
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: