Fixed bug 1873 : return image keypoint descriptors + fix on line 152 pure declaration
authorStevenPuttemans <steven.puttemans@lessius.eu>
Fri, 19 Jul 2013 07:29:48 +0000 (09:29 +0200)
committerStevenPuttemans <steven.puttemans@lessius.eu>
Fri, 19 Jul 2013 07:29:48 +0000 (09:29 +0200)
modules/features2d/src/bagofwords.cpp

index 9770064..898c634 100644 (file)
@@ -149,7 +149,7 @@ void BOWImgDescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& key
     int clusterCount = descriptorSize(); // = vocabulary.rows
 
     // Compute descriptors for the image.
-    Mat descriptors = _descriptors ? *_descriptors : Mat();
+    Mat descriptors;
     dextractor->compute( image, keypoints, descriptors );
 
     // Match keypoint descriptors to cluster center (to vocabulary)
@@ -178,6 +178,11 @@ void BOWImgDescriptorExtractor::compute( const Mat& image, vector<KeyPoint>& key
 
     // Normalize image descriptor.
     imgDescriptor /= descriptors.rows;
+       
+    // Add the descriptors of image keypoints
+    if (_descriptors) {
+        *_descriptors = descriptors.clone(); 
+    }
 }
 
 int BOWImgDescriptorExtractor::descriptorSize() const