/*
* Abstract base class for training of a 'bag of visual words' vocabulary from a set of descriptors
*/
-class CV_EXPORTS BOWTrainer
+class CV_EXPORTS_W BOWTrainer
{
public:
BOWTrainer();
virtual ~BOWTrainer();
- void add( const Mat& descriptors );
- const vector<Mat>& getDescriptors() const;
- int descripotorsCount() const;
+ CV_WRAP void add( const Mat& descriptors );
+ CV_WRAP const vector<Mat>& getDescriptors() const;
+ CV_WRAP int descripotorsCount() const;
- virtual void clear();
+ CV_WRAP virtual void clear();
/*
* Train visual words vocabulary, that is cluster training descriptors and
*
* descriptors Training descriptors computed on images keypoints.
*/
- virtual Mat cluster() const = 0;
- virtual Mat cluster( const Mat& descriptors ) const = 0;
+ CV_WRAP virtual Mat cluster() const = 0;
+ CV_WRAP virtual Mat cluster( const Mat& descriptors ) const = 0;
protected:
vector<Mat> descriptors;
/*
* This is BOWTrainer using cv::kmeans to get vocabulary.
*/
-class CV_EXPORTS BOWKMeansTrainer : public BOWTrainer
+class CV_EXPORTS_W BOWKMeansTrainer : public BOWTrainer
{
public:
- BOWKMeansTrainer( int clusterCount, const TermCriteria& termcrit=TermCriteria(),
+ CV_WRAP BOWKMeansTrainer( int clusterCount, const TermCriteria& termcrit=TermCriteria(),
int attempts=3, int flags=KMEANS_PP_CENTERS );
virtual ~BOWKMeansTrainer();
// Returns trained vocabulary (i.e. cluster centers).
- virtual Mat cluster() const;
- virtual Mat cluster( const Mat& descriptors ) const;
+ CV_WRAP virtual Mat cluster() const;
+ CV_WRAP virtual Mat cluster( const Mat& descriptors ) const;
protected:
/*
* Class to compute image descriptor using bag of visual words.
*/
-class CV_EXPORTS BOWImgDescriptorExtractor
+class CV_EXPORTS_W BOWImgDescriptorExtractor
{
public:
- BOWImgDescriptorExtractor( const Ptr<DescriptorExtractor>& dextractor,
+ CV_WRAP BOWImgDescriptorExtractor( const Ptr<DescriptorExtractor>& dextractor,
const Ptr<DescriptorMatcher>& dmatcher );
virtual ~BOWImgDescriptorExtractor();
- void setVocabulary( const Mat& vocabulary );
- const Mat& getVocabulary() const;
+ CV_WRAP void setVocabulary( const Mat& vocabulary );
+ CV_WRAP const Mat& getVocabulary() const;
void compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& imgDescriptor,
vector<vector<int> >* pointIdxsOfClusters=0, Mat* descriptors=0 );
// compute() is not constant because DescriptorMatcher::match is not constant
- int descriptorSize() const;
- int descriptorType() const;
+ CV_WRAP_AS(compute) void compute2( const Mat& image, vector<KeyPoint>& keypoints, Mat& imgDescriptor )
+ { compute(image,keypoints,imgDescriptor); }
+
+ CV_WRAP int descriptorSize() const;
+ CV_WRAP int descriptorType() const;
protected:
Mat vocabulary;