In opencv\modules\features2d\src\matchers.cpp,
void FlannBasedMatcher::train()
{
CV_INSTRUMENT_REGION();
if( !flannIndex || mergedDescriptors.size() < addedDescCount )
{
// FIXIT: Workaround for 'utrainDescCollection' issue (PR #2142)
if (!utrainDescCollection.empty())
{
CV_Assert(trainDescCollection.size() == 0);
for (size_t i = 0; i < utrainDescCollection.size(); ++i)
trainDescCollection.push_back(utrainDescCollection[i].getMat(ACCESS_READ));
}
mergedDescriptors.set( trainDescCollection );
flannIndex = makePtr<flann::Index>( mergedDescriptors.getDescriptors(), *indexParams );
}
}
the line flannIndex = makePtr<flann::Index>( mergedDescriptors.getDescriptors(), *indexParams );
takes 2 parameters in creating flann::Index object,
But in opencv\modules\flann\src\miniflann.cpp, line 379-386
Index::Index(InputArray _data, const IndexParams& params, flann_distance_t _distType)
{
index = 0;
featureType = CV_32F;
algo = FLANN_INDEX_LINEAR;
distType = FLANN_DIST_L2;
build(_data, params, _distType);
}
the constructor takes 3 parameters. Is it a potential bug?