我已经使用此链接在ubuntu上安装了OpenCV ,我正在尝试使用SURF描述符.我知道他们将这些类型的描述符的位置更改为非自由模块,因此我们需要包含它,这是这样的:#include "opencv2/nonfree/features2d.hpp".问题是我在编译时遇到这个错误:opencv2/nonfree/features2d.hpp no such file or directory.
知道怎么解决吗?
编辑: openCV的其他部分工作正常.我包括以下库,一切都很好看:
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/legacy/legacy.hpp"
Run Code Online (Sandbox Code Playgroud)
我检查了我的OpenCV目录中的inlcude文件夹,并且存在nonfree文件夹.此外,它是我在QTCreator(我正在使用的环境)中无法访问的唯一库,因为我试图包含在Inlcude文件夹中找到的所有其他库,但它们看起来很好.
EDITED2:
您可以看到我make VERBOSE=1在此链接上运行时看到的内容的屏幕截图
所以不确定在哪里看?实际上,我没有在../usr/include/opencv2/中找到nonfree文件夹
谢谢.
当我尝试运行示例find_obj.cpp或任何OpenCV SURF程序时,我在执行代码时在命令提示符中收到以下错误.该项目的构建没有错误和警告.我正在使用VS2011 beta,OpenCV 2.4和windows7.
错误信息:
OpenCV Error: The function/feature is not implemented < OpenCV was built without SURF support> in unknown function,file ..\..\..\src\opencv\modules\legacy\src\features2d.cpp, line 77
Run Code Online (Sandbox Code Playgroud)
我尝试在调试模式下使用Cmake然后再使用VS2011再次构建OpenCV 2.4,然后在IDE中添加了lib路径,但仍然没有结果.
我该如何解决这个问题?
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/legacy/legacy.hpp>
#include <opencv2/legacy/compat.hpp>
#include <opencv2/flann/flann.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <opencv2/nonfree/features2d.hpp>
#include <opencv2/nonfree/nonfree.hpp>
using namespace std;
using namespace cv;
int main()
{
cv::initModule_nonfree();//THIS LINE IS IMPORTANT
IplImage *image1 = cvLoadImage("C:\\SURF\\1.jpg");
IplImage *image2 = cvLoadImage("C:\\SURF\\2.jpg");
CvMemStorage* memoryBlock = cvCreateMemStorage();
CvSeq* image1KeyPoints;
CvSeq* image1Descriptors;
CvSeq* …Run Code Online (Sandbox Code Playgroud)