首页 > 代码库 > 使用高版本OpenCV时应该注意的问题

使用高版本OpenCV时应该注意的问题

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

使用高版本OpenCV时应该注意的问题