public class Xfeatures2d extends Object
Constructor and Description |
---|
Xfeatures2d() |
Modifier and Type | Method and Description |
---|---|
static void |
matchGMS(Size size1,
Size size2,
MatOfKeyPoint keypoints1,
MatOfKeyPoint keypoints2,
MatOfDMatch matches1to2,
MatOfDMatch matchesGMS)
GMS (Grid-based Motion Statistics) feature matching strategy described in CITE: Bian2017gms .
|
static void |
matchGMS(Size size1,
Size size2,
MatOfKeyPoint keypoints1,
MatOfKeyPoint keypoints2,
MatOfDMatch matches1to2,
MatOfDMatch matchesGMS,
boolean withRotation)
GMS (Grid-based Motion Statistics) feature matching strategy described in CITE: Bian2017gms .
|
static void |
matchGMS(Size size1,
Size size2,
MatOfKeyPoint keypoints1,
MatOfKeyPoint keypoints2,
MatOfDMatch matches1to2,
MatOfDMatch matchesGMS,
boolean withRotation,
boolean withScale)
GMS (Grid-based Motion Statistics) feature matching strategy described in CITE: Bian2017gms .
|
static void |
matchGMS(Size size1,
Size size2,
MatOfKeyPoint keypoints1,
MatOfKeyPoint keypoints2,
MatOfDMatch matches1to2,
MatOfDMatch matchesGMS,
boolean withRotation,
boolean withScale,
double thresholdFactor)
GMS (Grid-based Motion Statistics) feature matching strategy described in CITE: Bian2017gms .
|
static void |
matchLOGOS(MatOfKeyPoint keypoints1,
MatOfKeyPoint keypoints2,
MatOfInt nn1,
MatOfInt nn2,
MatOfDMatch matches1to2)
LOGOS (Local geometric support for high-outlier spatial verification) feature matching strategy described in CITE: Lowry2018LOGOSLG .
|
public static void matchGMS(Size size1, Size size2, MatOfKeyPoint keypoints1, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, MatOfDMatch matchesGMS, boolean withRotation, boolean withScale, double thresholdFactor)
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.public static void matchGMS(Size size1, Size size2, MatOfKeyPoint keypoints1, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, MatOfDMatch matchesGMS, boolean withRotation, boolean withScale)
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.
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.public static void matchGMS(Size size1, Size size2, MatOfKeyPoint keypoints1, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, MatOfDMatch matchesGMS, boolean withRotation)
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.
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.public static void matchGMS(Size size1, Size size2, MatOfKeyPoint keypoints1, MatOfKeyPoint keypoints2, MatOfDMatch matches1to2, MatOfDMatch matchesGMS)
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.
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.public static void matchLOGOS(MatOfKeyPoint keypoints1, MatOfKeyPoint keypoints2, MatOfInt nn1, MatOfInt nn2, MatOfDMatch matches1to2)
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).Copyright © 2020. All rights reserved.