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> }@
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> }@