public:
virtual ~DescriptorMatcher();
- virtual void add( const vector<Mat>& descriptors );
+ virtual void add( InputArray descriptors );
const vector<Mat>& getTrainDescriptors() const;
virtual void clear();
/*
* Group of methods to match descriptors from an image pair.
*/
- void match( const Mat& queryDescriptors, const Mat& trainDescriptors,
- vector<DMatch>& matches, const Mat& mask=Mat() ) const;
- void knnMatch( const Mat& queryDescriptors, const Mat& trainDescriptors,
+ void match( InputArray queryDescriptors, InputArray trainDescriptors,
+ vector<DMatch>& matches, InputArray mask=Mat() ) const;
+ void knnMatch( InputArray queryDescriptors, InputArray trainDescriptors,
vector<vector<DMatch> >& matches, int k,
- const Mat& mask=Mat(), bool compactResult=false ) const;
- void radiusMatch( const Mat& queryDescriptors, const Mat& trainDescriptors,
+ InputArray mask=Mat(), bool compactResult=false ) const;
+ void radiusMatch( InputArray queryDescriptors, InputArray trainDescriptors,
vector<vector<DMatch> >& matches, float maxDistance,
- const Mat& mask=Mat(), bool compactResult=false ) const;
+ InputArray mask=Mat(), bool compactResult=false ) const;
/*
* Group of methods to match descriptors from one image to an image set.
*/
- void match( const Mat& queryDescriptors, vector<DMatch>& matches,
+ void match( InputArray queryDescriptors, vector<DMatch>& matches,
const vector<Mat>& masks=vector<Mat>() );
- void knnMatch( const Mat& queryDescriptors, vector<vector<DMatch> >& matches,
+ void knnMatch( InputArray queryDescriptors, vector<vector<DMatch> >& matches,
int k, const vector<Mat>& masks=vector<Mat>(),
bool compactResult=false );
- void radiusMatch( const Mat& queryDescriptors, vector<vector<DMatch> >& matches,
+ void radiusMatch( InputArray queryDescriptors, vector<vector<DMatch> >& matches,
float maxDistance, const vector<Mat>& masks=vector<Mat>(),
bool compactResult=false );
protected:
vector<Mat> trainDescCollection;
+ vector<UMat> utrainDescCollection;
...
};
DescriptorMatcher::add
--------------------------
-Adds descriptors to train a descriptor collection. If the collection ``trainDescCollectionis`` is not empty, the new descriptors are added to existing train descriptors.
+Adds descriptors to train a CPU(``trainDescCollectionis``) or GPU(``utrainDescCollectionis``) descriptor collection. If the collection is not empty, the new descriptors are added to existing train descriptors.
-.. ocv:function:: void DescriptorMatcher::add( const vector<Mat>& descriptors )
+.. ocv:function:: void DescriptorMatcher::add( InputArrayOfArrays descriptors )
:param descriptors: Descriptors to add. Each ``descriptors[i]`` is a set of descriptors from the same train image.
DescriptorMatcher::clear
----------------------------
-Clears the train descriptor collection.
+Clears the train descriptor collections.
.. ocv:function:: void DescriptorMatcher::clear()
DescriptorMatcher::empty
----------------------------
-Returns true if there are no train descriptors in the collection.
+Returns true if there are no train descriptors in the both collections.
.. ocv:function:: bool DescriptorMatcher::empty() const
----------------------------
Finds the best match for each descriptor from a query set.
-.. ocv:function:: void DescriptorMatcher::match( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<DMatch>& matches, const Mat& mask=Mat() ) const
+.. ocv:function:: void DescriptorMatcher::match( InputArray queryDescriptors, InputArray trainDescriptors, vector<DMatch>& matches, InputArray mask=Mat() ) const
-.. ocv:function:: void DescriptorMatcher::match( const Mat& queryDescriptors, vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>() )
+.. ocv:function:: void DescriptorMatcher::match(InputArray queryDescriptors, vector<DMatch>& matches, const vector<Mat>& masks=vector<Mat>() )
:param queryDescriptors: Query set of descriptors.
-------------------------------
Finds the k best matches for each descriptor from a query set.
-.. ocv:function:: void DescriptorMatcher::knnMatch( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<vector<DMatch> >& matches, int k, const Mat& mask=Mat(), bool compactResult=false ) const
+.. ocv:function:: void DescriptorMatcher::knnMatch(InputArray queryDescriptors, InputArray trainDescriptors, vector<vector<DMatch> >& matches, int k, InputArray mask=Mat(), bool compactResult=false ) const
-.. ocv:function:: void DescriptorMatcher::knnMatch( const Mat& queryDescriptors, vector<vector<DMatch> >& matches, int k, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
+.. ocv:function:: void DescriptorMatcher::knnMatch( InputArray queryDescriptors, vector<vector<DMatch> >& matches, int k, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
:param queryDescriptors: Query set of descriptors.
----------------------------------
For each query descriptor, finds the training descriptors not farther than the specified distance.
-.. ocv:function:: void DescriptorMatcher::radiusMatch( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<vector<DMatch> >& matches, float maxDistance, const Mat& mask=Mat(), bool compactResult=false ) const
+.. ocv:function:: void DescriptorMatcher::radiusMatch( InputArray queryDescriptors, InputArray trainDescriptors, vector<vector<DMatch> >& matches, float maxDistance, InputArray mask=Mat(), bool compactResult=false ) const
-.. ocv:function:: void DescriptorMatcher::radiusMatch( const Mat& queryDescriptors, vector<vector<DMatch> >& matches, float maxDistance, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
+.. ocv:function:: void DescriptorMatcher::radiusMatch( InputArray queryDescriptors, vector<vector<DMatch> >& matches, float maxDistance, const vector<Mat>& masks=vector<Mat>(), bool compactResult=false )
:param queryDescriptors: Query set of descriptors.