39
#ifndef __OPENCV_XFEATURES2D_HPP__
40
#define __OPENCV_XFEATURES2D_HPP__
42
#include "opencv2/features2d.hpp"
43
#include "opencv2/xfeatures2d/nonfree.hpp"
89
static
const
int
NB_SCALES = 64;
90
static
const
int
NB_PAIRS = 512;
91
static
const
int
NB_ORIENPAIRS = 45;
100
CV_WRAP
static
Ptr<FREAK>
create(
bool
orientationNormalized =
true,
101
bool
scaleNormalized =
true,
102
float
patternScale = 22.0f,
104
const
std::vector<int>& selectedPairs = std::vector<int>());
115
int
lineThresholdProjected=10,
116
int
lineThresholdBinarized=8,
117
int
suppressNonmaxSize=5);
150
CV_WRAP
static
Ptr<LUCID>
create(
const
int
lucid_kernel = 1,
const
int
blur_kernel = 2);
179
CV_WRAP
static
Ptr<LATCH>
create(
int
bytes = 32,
bool
rotationInvariance =
true,
int
half_ssd_size = 3,
double
sigma = 2.0);
213
SIZE_512_BITS = 100, SIZE_256_BITS = 101,
224
CV_WRAP
static
Ptr<BEBLID>
create(
float
scale_factor,
int
n_bits = BEBLID::SIZE_512_BITS);
246
enum
NormalizationType
248
NRM_NONE = 100, NRM_PARTIAL = 101, NRM_FULL = 102, NRM_SIFT = 103,
250
CV_WRAP
static
Ptr<DAISY>
create(
float
radius = 15,
int
q_radius = 3,
int
q_theta = 8,
251
int
q_hist = 8, DAISY::NormalizationType
norm
= DAISY::NRM_NONE, InputArray H = noArray(),
252
bool
interpolation =
true,
bool
use_orientation =
false
);
259
virtual
void
compute( InputArray image, std::vector<KeyPoint>& keypoints,
OutputArray
descriptors ) CV_OVERRIDE = 0;
261
virtual
void
compute( InputArrayOfArrays images,
262
std::vector<std::vector<KeyPoint> >& keypoints,
284
virtual
void
GetDescriptor(
double
y,
double
x,
int
orientation,
float* descriptor )
const
= 0;
293
virtual
bool
GetDescriptor(
double
y,
double
x,
int
orientation,
float* descriptor,
double* H )
const
= 0;
331
static
Ptr<MSDDetector>
create(
int
m_patch_radius = 3,
int
m_search_area_radius = 5,
332
int
m_nms_radius = 5,
int
m_nms_scale_radius = 0,
float
m_th_saliency = 250.0f,
int
m_kNN = 4,
333
float
m_scale_factor = 1.25f,
int
m_n_scales = -1,
bool
m_compute_orientation =
false);
359
VGG_120 = 100, VGG_80 = 101, VGG_64 = 102, VGG_48 = 103,
362
CV_WRAP
static
Ptr<VGG>
create(
int
desc = VGG::VGG_120,
float
isigma = 1.4f,
363
bool
img_normalize =
true,
bool
use_scale_orientation =
true,
364
float
scale_factor = 6.25f,
bool
dsc_normalize =
false
);
366
CV_WRAP
virtual
void
setSigma(
const
float
isigma) = 0;
367
CV_WRAP
virtual
float
getSigma()
const
= 0;
369
CV_WRAP
virtual
void
setUseNormalizeImage(
const
bool
img_normalize) = 0;
370
CV_WRAP
virtual
bool
getUseNormalizeImage()
const
= 0;
372
CV_WRAP
virtual
void
setUseScaleOrientation(
const
bool
use_scale_orientation) = 0;
373
CV_WRAP
virtual
bool
getUseScaleOrientation()
const
= 0;
375
CV_WRAP
virtual
void
setScaleFactor(
const
float
scale_factor) = 0;
376
CV_WRAP
virtual
float
getScaleFactor()
const
= 0;
378
CV_WRAP
virtual
void
setUseNormalizeDescriptor(
const
bool
dsc_normalize) = 0;
379
CV_WRAP
virtual
bool
getUseNormalizeDescriptor()
const
= 0;
415
BGM = 100, BGM_HARD = 101, BGM_BILINEAR = 102, LBGM = 200,
416
BINBOOST_64 = 300, BINBOOST_128 = 301, BINBOOST_256 = 302
419
CV_WRAP
static
Ptr<BoostDesc>
create(
int
desc = BoostDesc::BINBOOST_256,
420
bool
use_scale_orientation =
true,
float
scale_factor = 6.25f );
422
CV_WRAP
virtual
void
setUseScaleOrientation(
const
bool
use_scale_orientation) = 0;
423
CV_WRAP
virtual
bool
getUseScaleOrientation()
const
= 0;
425
CV_WRAP
virtual
void
setScaleFactor(
const
float
scale_factor) = 0;
426
CV_WRAP
virtual
float
getScaleFactor()
const
= 0;
456
L0_25, L0_5,
L1,
L2, L2SQUARED, L5, L_INFINITY
498
const
int
initSampleCount = 2000,
499
const
int
initSeedCount = 400,
500
const
int
pointDistribution = 0);
512
const
std::vector<Point2f>& initSamplingPoints,
513
const
int
initSeedCount);
524
const
std::vector<Point2f>& initSamplingPoints,
525
const
std::vector<int>& initClusterSeedIndexes);
534
CV_WRAP
virtual
void
computeSignature(
543
CV_WRAP
virtual
void
computeSignatures(
544
const
std::vector<Mat>& images,
545
std::vector<Mat>& signatures)
const
= 0;
559
CV_WRAP
static
void
drawSignature(
561
InputArray signature,
563
float
radiusToShorterSideRatio = 1.0 / 8,
564
int
borderThickness = 1);
574
CV_WRAP
static
void
generateInitPoints(
575
std::vector<Point2f>& initPoints,
577
int
pointDistribution);
585
CV_WRAP
virtual
int
getSampleCount()
const
= 0;
592
CV_WRAP
virtual
int
getGrayscaleBits()
const
= 0;
598
CV_WRAP
virtual
void
setGrayscaleBits(
int
grayscaleBits) = 0;
605
CV_WRAP
virtual
int
getWindowRadius()
const
= 0;
611
CV_WRAP
virtual
void
setWindowRadius(
int
radius) = 0;
618
CV_WRAP
virtual
float
getWeightX()
const
= 0;
623
CV_WRAP
virtual
void
setWeightX(
float
weight) = 0;
629
CV_WRAP
virtual
float
getWeightY()
const
= 0;
634
CV_WRAP
virtual
void
setWeightY(
float
weight) = 0;
640
CV_WRAP
virtual
float
getWeightL()
const
= 0;
645
CV_WRAP
virtual
void
setWeightL(
float
weight) = 0;
651
CV_WRAP
virtual
float
getWeightA()
const
= 0;
656
CV_WRAP
virtual
void
setWeightA(
float
weight) = 0;
662
CV_WRAP
virtual
float
getWeightB()
const
= 0;
667
CV_WRAP
virtual
void
setWeightB(
float
weight) = 0;
673
CV_WRAP
virtual
float
getWeightContrast()
const
= 0;
678
CV_WRAP
virtual
void
setWeightContrast(
float
weight) = 0;
684
CV_WRAP
virtual
float
getWeightEntropy()
const
= 0;
689
CV_WRAP
virtual
void
setWeightEntropy(
float
weight) = 0;
695
CV_WRAP
virtual
std::vector<Point2f> getSamplingPoints()
const
= 0;
713
CV_WRAP
virtual
void
setWeight(
int
idx,
float
value) = 0;
727
CV_WRAP
virtual
void
setWeights(
const
std::vector<float>& weights) = 0;
743
CV_WRAP
virtual
void
setTranslation(
int
idx,
float
value) = 0;
757
CV_WRAP
virtual
void
setTranslations(
const
std::vector<float>& translations) = 0;
764
CV_WRAP
virtual
void
setSamplingPoints(std::vector<Point2f> samplingPoints) = 0;
772
CV_WRAP
virtual
std::vector<int> getInitSeedIndexes()
const
= 0;
776
CV_WRAP
virtual
void
setInitSeedIndexes(std::vector<int> initSeedIndexes) = 0;
780
CV_WRAP
virtual
int
getInitSeedCount()
const
= 0;
787
CV_WRAP
virtual
int
getIterationCount()
const
= 0;
793
CV_WRAP
virtual
void
setIterationCount(
int
iterationCount) = 0;
799
CV_WRAP
virtual
int
getMaxClustersCount()
const
= 0;
804
CV_WRAP
virtual
void
setMaxClustersCount(
int
maxClustersCount) = 0;
811
CV_WRAP
virtual
int
getClusterMinSize()
const
= 0;
817
CV_WRAP
virtual
void
setClusterMinSize(
int
clusterMinSize) = 0;
824
CV_WRAP
virtual
float
getJoiningDistance()
const
= 0;
830
CV_WRAP
virtual
void
setJoiningDistance(
float
joiningDistance) = 0;
835
CV_WRAP
virtual
float
getDropThreshold()
const
= 0;
839
CV_WRAP
virtual
void
setDropThreshold(
float
dropThreshold) = 0;
844
CV_WRAP
virtual
int
getDistanceFunction()
const
= 0;
849
CV_WRAP
virtual
void
setDistanceFunction(
int
distanceFunction) = 0;
875
const
int
distanceFunction = 3,
876
const
int
similarityFunction = 2,
877
const
float
similarityParameter = 1.0f);
884
CV_WRAP
virtual
float
computeQuadraticFormDistance(
885
InputArray _signature0,
886
InputArray _signature1)
const
= 0;
895
CV_WRAP
virtual
void
computeQuadraticFormDistances(
896
const
Mat& sourceSignature,
897
const
std::vector<Mat>& imageSignatures,
898
std::vector<float>& distances)
const
= 0;
933
float
corn_thresh=0.01f,
934
float
DOG_thresh=0.01f,
967
return
create(keypoint_detector, keypoint_detector);
977
CV_OUT std::vector<Elliptic_KeyPoint>& keypoints,
978
InputArray mask=noArray() ) = 0;
988
CV_OUT std::vector<Elliptic_KeyPoint>& keypoints,
990
bool
useProvidedKeypoints=
false
) = 0;
1013
CV_WRAP
static
Ptr<TBMR>
create(
int
min_area = 60,
1014
float
max_area_relative = 0.01f,
1015
float
scale_factor = 1.25f,
1018
CV_WRAP
virtual
void
setMinArea(
int
minArea) = 0;
1019
CV_WRAP
virtual
int
getMinArea()
const
= 0;
1020
CV_WRAP
virtual
void
setMaxAreaRelative(
float
maxArea) = 0;
1021
CV_WRAP
virtual
float
getMaxAreaRelative()
const
= 0;
1022
CV_WRAP
virtual
void
setScaleFactor(
float
scale_factor) = 0;
1023
CV_WRAP
virtual
float
getScaleFactor()
const
= 0;
1024
CV_WRAP
virtual
void
setNScales(
int
n_scales) = 0;
1025
CV_WRAP
virtual
int
getNScales()
const
= 0;
1043
CV_EXPORTS
void
FASTForPointSet( InputArray image, CV_IN_OUT std::vector<KeyPoint>& keypoints,
1044
int
threshold,
bool
nonmaxSuppression=
true, cv::FastFeatureDetector::DetectorType type=FastFeatureDetector::TYPE_9_16);
1068
CV_EXPORTS_W
void
matchGMS(
const
Size& size1,
const
Size& size2,
const
std::vector<KeyPoint>& keypoints1,
const
std::vector<KeyPoint>& keypoints2,
1069
const
std::vector<DMatch>& matches1to2, CV_OUT std::vector<DMatch>& matchesGMS,
const
bool
withRotation =
false,
1070
const
bool
withScale =
false,
const
double
thresholdFactor = 6.0);
1083
CV_EXPORTS_W
void
matchLOGOS(
const
std::vector<KeyPoint>& keypoints1,
const
std::vector<KeyPoint>& keypoints2,
1084
const
std::vector<int>& nn1,
const
std::vector<int>& nn2,
1085
std::vector<DMatch>& matches1to2);
This type is very similar to InputArray except that it is used for input/output and output function p...
Definition:
mat.hpp:295
This is a base class for all more or less complex algorithms in OpenCV
Definition:
core.hpp:3091
Abstract base class for 2D image feature detectors and descriptor extractors
Definition:
features2d.hpp:135
virtual CV_WRAP void detect(InputArray image, CV_OUT std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
Detects keypoints in an image (first variant) or image set (second variant).
virtual CV_WRAP void detectAndCompute(InputArray image, InputArray mask, CV_OUT std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
Data structure for salient point detectors.
Definition:
core/types.hpp:712
n-dimensional dense array class
Definition:
mat.hpp:802
Template class for 2D rectangles
Definition:
core/types.hpp:421
Class implementing affine adaptation for key points.
Definition:
xfeatures2d.hpp:950
static Ptr< AffineFeature2D > create(Ptr< FeatureDetector > keypoint_detector)
Creates an instance where keypoint detector and descriptor extractor are identical.
Definition:
xfeatures2d.hpp:964
static Ptr< AffineFeature2D > create(Ptr< FeatureDetector > keypoint_detector, Ptr< DescriptorExtractor > descriptor_extractor)
Creates an instance wrapping the given keypoint detector and descriptor extractor.
virtual void detectAndCompute(InputArray image, InputArray mask, CV_OUT std::vector< Elliptic_KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)=0
Detects keypoints and computes descriptors for their surrounding regions, after warping them into cir...
virtual void detect(InputArray image, CV_OUT std::vector< Elliptic_KeyPoint > &keypoints, InputArray mask=noArray())=0
Detects keypoints in the image using the wrapped detector and performs affine adaptation to augment t...
Class implementing BEBLID (Boosted Efficient Binary Local Image Descriptor), described in .
Definition:
xfeatures2d.hpp:205
BeblidSize
Descriptor number of bits, each bit is a boosting weak-learner. The user can choose between 512 or 25...
Definition:
xfeatures2d.hpp:212
Class implementing BoostDesc (Learning Image Descriptors with Boosting), described in and .
Definition:
xfeatures2d.hpp:410
Class implementing DAISY descriptor, described in
Definition:
xfeatures2d.hpp:244
virtual bool GetUnnormalizedDescriptor(double y, double x, int orientation, float *descriptor, double *H) const =0
virtual void GetDescriptor(double y, double x, int orientation, float *descriptor) const =0
virtual void compute(InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors) CV_OVERRIDE=0
virtual bool GetDescriptor(double y, double x, int orientation, float *descriptor, double *H) const =0
virtual void compute(InputArray image, OutputArray descriptors)=0
virtual void GetUnnormalizedDescriptor(double y, double x, int orientation, float *descriptor) const =0
virtual void compute(InputArray image, Rect roi, OutputArray descriptors)=0
Elliptic region around an interest point.
Definition:
xfeatures2d.hpp:906
Matx23f transf
the transformation between image space and local patch space
Definition:
xfeatures2d.hpp:910
float si
the integration scale at which the parameters were estimated
Definition:
xfeatures2d.hpp:909
Size_< float > axes
the lengths of the major and minor ellipse axes
Definition:
xfeatures2d.hpp:908
Class implementing the FREAK (Fast Retina Keypoint) keypoint descriptor, described in .
Definition:
xfeatures2d.hpp:86
Class implementing the Harris-Laplace feature detector as described in .
Definition:
xfeatures2d.hpp:920
Definition:
xfeatures2d.hpp:177
Class implementing the locally uniform comparison image descriptor, described in
Definition:
xfeatures2d.hpp:144
Class implementing the MSD (Maximal Self-Dissimilarity) keypoint detector, described in .
Definition:
xfeatures2d.hpp:327
Class implementing PCT (position-color-texture) signature extraction as described in ....
Definition:
xfeatures2d.hpp:449
PointDistribution
Point distributions supported by random point generator.
Definition:
xfeatures2d.hpp:463
@ UNIFORM
Generate numbers uniformly.
Definition:
xfeatures2d.hpp:464
@ REGULAR
Generate points in a regular grid.
Definition:
xfeatures2d.hpp:465
SimilarityFunction
Similarity function selector.
Definition:
xfeatures2d.hpp:480
@ GAUSSIAN
Definition:
xfeatures2d.hpp:482
@ MINUS
Definition:
xfeatures2d.hpp:481
DistanceFunction
Lp distance function selector.
Definition:
xfeatures2d.hpp:455
Class implementing Signature Quadratic Form Distance (SQFD).
Definition:
xfeatures2d.hpp:862
The class implements the keypoint detector introduced by , synonym of StarDetector....
Definition:
xfeatures2d.hpp:111
Class implementing the Tree Based Morse Regions (TBMR) as described in extended with scaled extracti...
Definition:
xfeatures2d.hpp:1011
Class implementing VGG (Oxford Visual Geometry Group) descriptor trained end to end using "Descriptor...
Definition:
xfeatures2d.hpp:354
CV_EXPORTS_W double norm(InputArray src1, int normType=NORM_L2, InputArray mask=noArray())
Calculates the absolute norm of an array.
CV_EXPORTS_W double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
Applies a fixed-level threshold to each array element.
CV_EXPORTS void FASTForPointSet(InputArray image, CV_IN_OUT std::vector< KeyPoint > &keypoints, int threshold, bool nonmaxSuppression=true, cv::FastFeatureDetector::DetectorType type=FastFeatureDetector::TYPE_9_16)
Estimates cornerness for prespecified KeyPoints using the FAST algorithm
CV_EXPORTS_W void 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 descr...
CV_EXPORTS_W void matchGMS(const Size &size1, const Size &size2, const std::vector< KeyPoint > &keypoints1, const std::vector< KeyPoint > &keypoints2, const std::vector< DMatch > &matches1to2, CV_OUT 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 .
"black box" representation of the file storage associated with a file on disk.
Definition:
aruco.hpp:75
Definition:
features2d.hpp:910
Definition:
features2d.hpp:894
Definition:
cvstd_wrapper.hpp:74