以下代码输出0。

Ptr<DescriptorExtractor> descriptor = DescriptorExtractor::create("SIFT");
cout << descriptor << endl;

而这段代码输出一个非零的指针。
Ptr<DescriptorExtractor> descriptor = DescriptorExtractor::create("ORB");
cout << descriptor << endl;

我应该怎么做才能解决创建筛选功能?我已经用opencv 2.4.7和2.4.6.1测试了它。

最佳答案

SIFT和SURF已获得专利,不是免费的。

因此,要使用这些,您必须

  • 包含“opencv2 / nonfree / nonfree.hpp” header
  • 链接到opencv_nonfree.lib和
  • 调用cv::initModule_nonfree();在main()中执行其他操作之前。
  • 10-08 09:17