| OpenCV 5.0.0alpha Open Source Computer Vision

Loading...
Searching...
No Matches
Functions
Experimental 2D Features Matching Algorithm
Extra 2D Features Framework

## Detailed Description

This section describes the following matching strategies:

- GMS: Grid-based Motion Statistics, [26]
- LOGOS: Local geometric support for high-outlier spatial verification, [175]

## Functions
void | cv::xfeatures2d::matchGMS (const Size &size1, const Size &size2, const std::vector< KeyPoint > &keypoints1, const std::vector< KeyPoint > &keypoints2, const std::vector< DMatch > &matches1to2, std::vector< DMatch > &matchesGMS, const bool withRotation=false, const bool withScale=false, const double thresholdFactor=6.0)
| GMS (Grid-based Motion Statistics) feature matching strategy described in [26] .
void | cv::xfeatures2d::matchLOGOS (const std::vector< KeyPoint > &keypoints1, const std::vector< KeyPoint > &keypoints2, const std::vector< int > &nn1, const std::vector< int > &nn2, std::vector< DMatch > &matches1to2)
| LOGOS (Local geometric support for high-outlier spatial verification) feature matching strategy described in [175] .

## Function Documentation

## ◆ matchGMS()

void cv::xfeatures2d::matchGMS | ( | const Size & | size1,
|  | const Size & | size2,
|  | const std::vector< KeyPoint > & | keypoints1,
|  | const std::vector< KeyPoint > & | keypoints2,
|  | const std::vector< DMatch > & | matches1to2,
|  | std::vector< DMatch > & | matchesGMS,
|  | const bool | withRotation = false,
|  | const bool | withScale = false,
|  | const double | thresholdFactor = 6.0 )

Python:
| cv.xfeatures2d.matchGMS( | size1, size2, keypoints1, keypoints2, matches1to2[, withRotation[, withScale[, thresholdFactor]]] | ) -> | matchesGMS

`#include <opencv2/xfeatures2d.hpp>`

GMS (Grid-based Motion Statistics) feature matching strategy described in [26] .

Parameters

  size1 | Input size of image1.
  size2 | Input size of image2.
  keypoints1 | Input keypoints of image1.
  keypoints2 | Input keypoints of image2.
  matches1to2 | Input 1-nearest neighbor matches.
  matchesGMS | Matches returned by the GMS matching strategy.
  withRotation | Take rotation transformation into account.
  withScale | Take scale transformation into account.
  thresholdFactor | The higher, the less matches.

Note
  Since GMS works well when the number of features is large, we recommend to use the ORB feature and set FastThreshold to 0 to get as many as possible features quickly. If matching results are not satisfying, please add more features. (We use 10000 for images with 640 X 480). If your images have big rotation and scale changes, please set withRotation or withScale to true.

## ◆ matchLOGOS()

void cv::xfeatures2d::matchLOGOS | ( | const std::vector< KeyPoint > & | keypoints1,
|  | const std::vector< KeyPoint > & | keypoints2,
|  | const std::vector< int > & | nn1,
|  | const std::vector< int > & | nn2,
|  | std::vector< DMatch > & | matches1to2 )

Python:
| cv.xfeatures2d.matchLOGOS( | keypoints1, keypoints2, nn1, nn2 | ) -> | matches1to2

`#include <opencv2/xfeatures2d.hpp>`

LOGOS (Local geometric support for high-outlier spatial verification) feature matching strategy described in [175] .

Parameters

  keypoints1 | Input keypoints of image1.
  keypoints2 | Input keypoints of image2.
  nn1 | Index to the closest BoW centroid for each descriptors of image1.
  nn2 | Index to the closest BoW centroid for each descriptors of image2.
  matches1to2 | Matches returned by the LOGOS matching strategy.

Note
  This matching strategy is suitable for features matching against large scale database. First step consists in constructing the bag-of-words (BoW) from a representative image database. Image descriptors are then represented by their closest codevector (nearest BoW centroid).