|
|
|
@ -108,7 +108,7 @@ public: |
|
|
|
|
* mask Mask specifying where to look for keypoints (optional). Must be a char |
|
|
|
|
* matrix with non-zero values in the region of interest. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP void detect( const Mat& image, CV_OUT std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
CV_WRAP void detect( InputArray image, CV_OUT std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Detect keypoints in an image set. |
|
|
|
@ -116,7 +116,7 @@ public: |
|
|
|
|
* keypoints Collection of keypoints detected in an input images. keypoints[i] is a set of keypoints detected in an images[i]. |
|
|
|
|
* masks Masks for image set. masks[i] is a mask for images[i]. |
|
|
|
|
*/ |
|
|
|
|
void detect( const std::vector<Mat>& images, std::vector<std::vector<KeyPoint> >& keypoints, const std::vector<Mat>& masks=std::vector<Mat>() ) const; |
|
|
|
|
void detect( InputArrayOfArrays images, std::vector<std::vector<KeyPoint> >& keypoints, InputArrayOfArrays masks=noArray() ) const; |
|
|
|
|
|
|
|
|
|
// Return true if detector object is empty
|
|
|
|
|
CV_WRAP virtual bool empty() const; |
|
|
|
@ -125,14 +125,14 @@ public: |
|
|
|
|
CV_WRAP static Ptr<FeatureDetector> create( const String& detectorType ); |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const = 0; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const = 0; |
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Remove keypoints that are not in the mask. |
|
|
|
|
* Helper function, useful when wrapping a library call for keypoint detection that |
|
|
|
|
* does not support a mask argument. |
|
|
|
|
*/ |
|
|
|
|
static void removeInvalidPoints( const Mat& mask, std::vector<KeyPoint>& keypoints ); |
|
|
|
|
static void removeInvalidPoints( const Mat & mask, std::vector<KeyPoint>& keypoints ); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -253,7 +253,7 @@ public: |
|
|
|
|
protected: |
|
|
|
|
|
|
|
|
|
void computeImpl( const Mat& image, std::vector<KeyPoint>& keypoints, Mat& descriptors ) const; |
|
|
|
|
void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
void computeKeypointsNoOrientation(InputArray image, InputArray mask, std::vector<KeyPoint>& keypoints) const; |
|
|
|
|
void computeDescriptorsAndOrOrientation(InputArray image, InputArray mask, std::vector<KeyPoint>& keypoints, |
|
|
|
@ -338,7 +338,7 @@ public: |
|
|
|
|
protected: |
|
|
|
|
|
|
|
|
|
void computeImpl( const Mat& image, std::vector<KeyPoint>& keypoints, Mat& descriptors ) const; |
|
|
|
|
void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
CV_PROP_RW int nfeatures; |
|
|
|
|
CV_PROP_RW double scaleFactor; |
|
|
|
@ -470,7 +470,7 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
int delta; |
|
|
|
|
int minArea; |
|
|
|
@ -506,7 +506,7 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
int maxSize; |
|
|
|
|
int responseThreshold; |
|
|
|
@ -535,7 +535,7 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
int threshold; |
|
|
|
|
bool nonmaxSuppression; |
|
|
|
@ -551,7 +551,7 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
int nfeatures; |
|
|
|
|
double qualityLevel; |
|
|
|
@ -608,7 +608,7 @@ protected: |
|
|
|
|
double confidence; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
virtual void findBlobs(const Mat &image, const Mat &binaryImage, std::vector<Center> ¢ers) const; |
|
|
|
|
|
|
|
|
|
Params params; |
|
|
|
@ -627,7 +627,7 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
double initFeatureScale; |
|
|
|
|
int featureScaleLevels; |
|
|
|
@ -664,7 +664,7 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
Ptr<FeatureDetector> detector; |
|
|
|
|
int maxTotalKeypoints; |
|
|
|
@ -686,7 +686,7 @@ public: |
|
|
|
|
virtual bool empty() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
Ptr<FeatureDetector> detector; |
|
|
|
|
int maxLevel; |
|
|
|
@ -747,7 +747,7 @@ public: |
|
|
|
|
virtual bool empty() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
DynamicAdaptedFeatureDetector& operator=(const DynamicAdaptedFeatureDetector&); |
|
|
|
@ -776,7 +776,7 @@ public: |
|
|
|
|
virtual Ptr<AdjusterAdapter> clone() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
int thresh_; |
|
|
|
|
bool nonmax_; |
|
|
|
@ -799,7 +799,7 @@ public: |
|
|
|
|
virtual Ptr<AdjusterAdapter> clone() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl(InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
double thresh_, init_thresh_, min_thresh_, max_thresh_; |
|
|
|
|
}; |
|
|
|
@ -816,7 +816,7 @@ public: |
|
|
|
|
virtual Ptr<AdjusterAdapter> clone() const; |
|
|
|
|
|
|
|
|
|
protected: |
|
|
|
|
virtual void detectImpl( const Mat& image, std::vector<KeyPoint>& keypoints, const Mat& mask=Mat() ) const; |
|
|
|
|
virtual void detectImpl( InputArray image, std::vector<KeyPoint>& keypoints, InputArray mask=noArray() ) const; |
|
|
|
|
|
|
|
|
|
double thresh_, init_thresh_, min_thresh_, max_thresh_; |
|
|
|
|
}; |
|
|
|
@ -1035,29 +1035,29 @@ public: |
|
|
|
|
*/ |
|
|
|
|
// Find one best match for each query descriptor (if mask is empty).
|
|
|
|
|
CV_WRAP void match( InputArray queryDescriptors, InputArray trainDescriptors, |
|
|
|
|
CV_OUT std::vector<DMatch>& matches, InputArray mask=Mat() ) const; |
|
|
|
|
CV_OUT std::vector<DMatch>& matches, InputArray mask=noArray() ) const; |
|
|
|
|
// Find k best matches for each query descriptor (in increasing order of distances).
|
|
|
|
|
// compactResult is used when mask is not empty. If compactResult is false matches
|
|
|
|
|
// vector will have the same size as queryDescriptors rows. If compactResult is true
|
|
|
|
|
// matches vector will not contain matches for fully masked out query descriptors.
|
|
|
|
|
CV_WRAP void knnMatch( InputArray queryDescriptors, InputArray trainDescriptors, |
|
|
|
|
CV_OUT std::vector<std::vector<DMatch> >& matches, int k, |
|
|
|
|
InputArray mask=Mat(), bool compactResult=false ) const; |
|
|
|
|
InputArray mask=noArray(), bool compactResult=false ) const; |
|
|
|
|
// Find best matches for each query descriptor which have distance less than
|
|
|
|
|
// maxDistance (in increasing order of distances).
|
|
|
|
|
void radiusMatch( InputArray queryDescriptors, InputArray trainDescriptors, |
|
|
|
|
std::vector<std::vector<DMatch> >& matches, float maxDistance, |
|
|
|
|
InputArray mask=Mat(), bool compactResult=false ) const; |
|
|
|
|
InputArray mask=noArray(), bool compactResult=false ) const; |
|
|
|
|
/*
|
|
|
|
|
* Group of methods to match descriptors from one image to image set. |
|
|
|
|
* See description of similar methods for matching image pair above. |
|
|
|
|
*/ |
|
|
|
|
CV_WRAP void match( InputArray queryDescriptors, CV_OUT std::vector<DMatch>& matches, |
|
|
|
|
const std::vector<Mat>& masks=std::vector<Mat>() ); |
|
|
|
|
const std::vector<Mat>& masks=std::vector<Mat>() ); |
|
|
|
|
CV_WRAP void knnMatch( InputArray queryDescriptors, CV_OUT std::vector<std::vector<DMatch> >& matches, int k, |
|
|
|
|
const std::vector<Mat>& masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
const std::vector<Mat>& masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
void radiusMatch( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, float maxDistance, |
|
|
|
|
const std::vector<Mat>& masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
const std::vector<Mat>& masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
|
|
|
|
|
// Reads matcher object from a file node
|
|
|
|
|
virtual void read( const FileNode& ); |
|
|
|
@ -1102,9 +1102,9 @@ protected: |
|
|
|
|
// that the class object has been trained already. Public match methods call these methods
|
|
|
|
|
// after calling train().
|
|
|
|
|
virtual void knnMatchImpl( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, int k, |
|
|
|
|
InputArrayOfArrays masks=std::vector<Mat>(), bool compactResult=false ) = 0; |
|
|
|
|
InputArrayOfArrays masks=noArray(), bool compactResult=false ) = 0; |
|
|
|
|
virtual void radiusMatchImpl( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, float maxDistance, |
|
|
|
|
InputArrayOfArrays masks=std::vector<Mat>(), bool compactResult=false ) = 0; |
|
|
|
|
InputArrayOfArrays masks=noArray(), bool compactResult=false ) = 0; |
|
|
|
|
|
|
|
|
|
static bool isPossibleMatch( const Mat& mask, int queryIdx, int trainIdx ); |
|
|
|
|
static bool isMaskedOut( const std::vector<Mat>& masks, int queryIdx ); |
|
|
|
@ -1139,15 +1139,9 @@ public: |
|
|
|
|
AlgorithmInfo* info() const; |
|
|
|
|
protected: |
|
|
|
|
virtual void knnMatchImpl( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, int k, |
|
|
|
|
InputArrayOfArrays masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
InputArrayOfArrays masks=noArray(), bool compactResult=false ); |
|
|
|
|
virtual void radiusMatchImpl( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, float maxDistance, |
|
|
|
|
InputArrayOfArrays masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
|
|
|
|
|
bool ocl_knnMatch(InputArray query, InputArray train, std::vector< std::vector<DMatch> > &matches, |
|
|
|
|
int k, int dstType, bool compactResult=false); |
|
|
|
|
bool ocl_radiusMatch(InputArray query, InputArray train, std::vector< std::vector<DMatch> > &matches, |
|
|
|
|
float maxDistance, int dstType, bool compactResult=false); |
|
|
|
|
bool ocl_match(InputArray query, InputArray train, std::vector< std::vector<DMatch> > &matches, int dstType); |
|
|
|
|
InputArrayOfArrays masks=noArray(), bool compactResult=false ); |
|
|
|
|
|
|
|
|
|
int normType; |
|
|
|
|
bool crossCheck; |
|
|
|
@ -1183,9 +1177,9 @@ protected: |
|
|
|
|
std::vector<std::vector<DMatch> >& matches ); |
|
|
|
|
|
|
|
|
|
virtual void knnMatchImpl( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, int k, |
|
|
|
|
InputArrayOfArrays masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
InputArrayOfArrays masks=noArray(), bool compactResult=false ); |
|
|
|
|
virtual void radiusMatchImpl( InputArray queryDescriptors, std::vector<std::vector<DMatch> >& matches, float maxDistance, |
|
|
|
|
InputArrayOfArrays masks=std::vector<Mat>(), bool compactResult=false ); |
|
|
|
|
InputArrayOfArrays masks=noArray(), bool compactResult=false ); |
|
|
|
|
|
|
|
|
|
Ptr<flann::IndexParams> indexParams; |
|
|
|
|
Ptr<flann::SearchParams> searchParams; |
|
|
|
|