Updated by Andrey Kamaev over 12 years ago

When you run the following code, @cv::DescriptorExtractor::сreate@ cv::DescriptorExtractor::сreate and @cv::FeatureDetector::create@ cv::FeatureDetector::create return a pointer to NULL, but it is not an throw exception. Library version OpenCV 2.4.9. On older versions of the library code works correctly.

Source:

<pre><code class="cpp">

#include @#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>

int main()
{
cv::Ptr<cv::FeatureDetector> detector;
cv::Ptr<cv::DescriptorExtractor> descriptorExtractor;

try
{
descriptorExtractor = cv::DescriptorExtractor::create("SURF");
if(descriptorExtractor==NULL){std::cout<<"descriptorExtractor NULL"<<std::endl;}
}
catch(...)
{
std::cout << "Can't initialize descriptor!" << std::endl;
return 1;
}

try
{
detector = cv::FeatureDetector::create("SURF");
if(detector==NULL){std::cout<<"detector NULL"<<std::endl;}
}
catch(...)
{
std::cout << "Can't initialize detector!" << std::endl;
return 1;
}
}
</code></pre>
}@

Back