使用OpenCV时,经常涉及到一些版本迁移的问题,而在版本迁移的过程中经常会遇到一些莫名奇妙的bug,比如在使用低版本的OpenCV
Ptr<FeatureDetector> detector = FeatureDetector::create( "SIFT" ); Ptr<DescriptorExtractor> descriptorExtractor = DescriptorExtractor::create( "SIFT" ); Ptr<DescriptorMatcher> descriptorMatcher = DescriptorMatcher::create( "BruteForce" ); if( detector.empty() || descriptorExtractor.empty() || descriptorMatcher.empty() ) { cout << "Can not create detector or descriptor exstractor or descriptor matcher of given types" << endl; return -1; }进行图像匹配时,会出现检测子为空的情况
查阅OpenCV API reference
可见在高版本的OpenCV中,图像匹配算法迁移到了nonfree模块中,此时要添加initModule_nonfree();函数才可以。
原文地址:http://blog.csdn.net/cjc211322/article/details/42554635