minor change of BOW
authorMaria Dimashova <no@email>
Mon, 8 Nov 2010 15:21:56 +0000 (15:21 +0000)
committerMaria Dimashova <no@email>
Mon, 8 Nov 2010 15:21:56 +0000 (15:21 +0000)
modules/features2d/include/opencv2/features2d/features2d.hpp
modules/features2d/src/bagofwords.cpp

index 0691f8a..e381e44 100644 (file)
@@ -2468,7 +2468,7 @@ public:
     void setVocabulary( const Mat& vocabulary );
     const Mat& getVocabulary() const { return vocabulary; }
     void compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& imgDescriptor,
-                  vector<vector<int> >* pointIdxsOfClusters=0 ); //not constant because DescriptorMatcher::match is not constant
+                  vector<vector<int> >* pointIdxsOfClusters=0, Mat* descriptors=0 ); //not constant because DescriptorMatcher::match is not constant
     int descriptorSize() const { return vocabulary.empty() ? 0 : vocabulary.rows; }
     int descriptorType() const { return CV_32FC1; }
 
index 3cf0960..dc056cc 100755 (executable)
@@ -112,7 +112,7 @@ void BOWImgDescriptorExtractor::setVocabulary( const Mat& _vocabulary )
 }
 
 void BOWImgDescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& keypoints, Mat& imgDescriptor,
-                                         vector<vector<int> >* pointIdxsOfClusters )
+                                         vector<vector<int> >* pointIdxsOfClusters, Mat* _descriptors )
 {
     imgDescriptor.release();
 
@@ -122,7 +122,7 @@ void BOWImgDescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& key
     int clusterCount = descriptorSize(); // = vocabulary.rows
 
     // Compute descriptors for the image.
-    Mat descriptors;
+    Mat descriptors = _descriptors ? *_descriptors : Mat();
     dextractor->compute( image, keypoints, descriptors );
 
     // Match keypoint descriptors to cluster center (to vocabulary)