|  | 
| 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 [18] .  More... 
 | 
|  | 
| 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 [149] .  More... 
 | 
|  | 
This section describes the following matching strategies:
- GMS: Grid-based Motion Statistics, [18]
- LOGOS: Local geometric support for high-outlier spatial verification, [149] 
◆ 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: | 
|---|
|  | matchesGMS | = | cv.xfeatures2d.matchGMS( | size1, size2, keypoints1, keypoints2, matches1to2[, withRotation[, withScale[, thresholdFactor]]] | ) | 
 
#include <opencv2/xfeatures2d.hpp>
GMS (Grid-based Motion Statistics) feature matching strategy described in [18] . 
- 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: | 
|---|
|  | None | = | 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 [149] . 
- 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).