'SIFT' 不是 'cv' 的成员

nic*_*125 0 macos opencv sift

我正在尝试在 Mac 上使用 C++ 使用 openCV 的 SIFT 特征检测器,但我不断收到以下错误:

siftTest.cpp: In function ‘int main(int, char**)’: 
siftTest.cpp:7: error: ‘SIFT’ is not a member of ‘cv’ 
siftTest.cpp:7: error: expected `;' before ‘detector’
Run Code Online (Sandbox Code Playgroud)

我的代码是:

#include <opencv2/opencv.hpp>
#include <iostream>

int main (int arg, char *argv[]) {
   cv::Mat image = cv::imread("fox.jpg", 1);

   cv::SIFT detector(0, 3, 0.04, 0, 1.6);
   cv::vector<cv::KeyPoint> keypoints;

   cv::namedWindow("=^..^= FOX =^..^=");
   cv::imshow("=^..^= FOX =^..^=", image);
   cv::waitKey();
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我可能只是没有导入某些东西,但我找不到正确的东西/正确的东西组合来让它工作。

谢谢

jet*_*t47 5

SIFTSURF被转移到nonfree模块。你需要添加

#include <opencv2/nonfree/nonfree.hpp>
Run Code Online (Sandbox Code Playgroud)

标题和与opencv_nonfree库的链接。