error: ‘SiftFeatureDetector’ was not declared in this scope,修改代码

sift_test.cpp:15:5: error: ‘SiftFeatureDetector’ was not declared in this scope
     SiftFeatureDetector siftDetector;//SIFT=SiftFeatureDetector=SiftDescriptorE
     ^
/home/ning/桌面/周报/第三次周报/sift_test.cpp:15:5: note: suggested alternative:
In file included from /home/ning/桌面/周报/第三次周报/sift_test.cpp:2:0:
/usr/local/include/opencv2/xfeatures2d/nonfree.hpp:84:14: note:   ‘cv::xfeatures2d::SiftFeatureDetector’
 typedef SIFT SiftFeatureDetector;
              ^
/home/ning/桌面/周报/第三次周报/sift_test.cpp:19:5: error: ‘siftDetector’ was not declared in this scope
     siftDetector.detect(srcImg1, keyPoints1);
     ^
CMakeFiles/sift_test.dir/build.make:62: recipe for target 'CMakeFiles/sift_test.dir/sift_test.cpp.o' failed
make[2]: *** [CMakeFiles/sift_test.dir/sift_test.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/sift_test.dir/all' failed
make[1]: *** [CMakeFiles/sift_test.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

解决方法
修改代码

//利用sift提取特征点
    cv::Ptr<cv::xfeatures2d::SIFT> sift = cv::xfeatures2d::SIFT::create();
    //特征点
	std::vector<cv::KeyPoint> keyPoint1, keyPoint2;
    //单独提取特征点
	sift->detect(img1, keyPoint1);
	sift->detect(img2, keyPoint2);
    //画特征点
	cv::Mat keyPointImage1;
	cv::Mat keyPointImage2;
	drawKeypoints(img1, keyPoint1, keyPointImage1, cv::Scalar::all(-1), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
	drawKeypoints(img2, keyPoint2, keyPointImage2, cv::Scalar::all(-1), cv::DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值