使用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();函數纔可以。