From 26d9a7cd400921b4c2b2bc6ecafd30873d848084 Mon Sep 17 00:00:00 2001 From: Maksim Shabunin Date: Wed, 10 Jun 2015 13:00:36 +0300 Subject: [PATCH] Trying to fix flann python wrapper issue --- modules/features2d/src/matchers.cpp | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/modules/features2d/src/matchers.cpp b/modules/features2d/src/matchers.cpp index 8d2f69ec83..a37ef0693f 100644 --- a/modules/features2d/src/matchers.cpp +++ b/modules/features2d/src/matchers.cpp @@ -1022,12 +1022,27 @@ FlannBasedMatcher::FlannBasedMatcher( const Ptr& _indexParam void FlannBasedMatcher::add( InputArrayOfArrays _descriptors ) { DescriptorMatcher::add( _descriptors ); - std::vector descriptors; - _descriptors.getUMatVector(descriptors); - - for( size_t i = 0; i < descriptors.size(); i++ ) + if(_descriptors.isUMatVector() || _descriptors.isUMat()) { - addedDescCount += descriptors[i].rows; + std::vector descriptors; + _descriptors.getUMatVector(descriptors); + for( size_t i = 0; i < descriptors.size(); i++ ) + { + addedDescCount += descriptors[i].rows; + } + } + else if(_descriptors.isMatVector() || _descriptors.isMat()) + { + std::vector descriptors; + _descriptors.getMatVector(descriptors); + for( size_t i = 0; i < descriptors.size(); i++ ) + { + addedDescCount += descriptors[i].rows; + } + } + else + { + CV_Assert( _descriptors.isUMat() || _descriptors.isUMatVector() || _descriptors.isMat() || _descriptors.isMatVector()); } }