Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenCV(CvHaarClassifierCascade*)cvLoad不';无法加载,无法加载xml文件_C++_Opencv_Face Detection - Fatal编程技术网

C++ OpenCV(CvHaarClassifierCascade*)cvLoad不';无法加载,无法加载xml文件

C++ OpenCV(CvHaarClassifierCascade*)cvLoad不';无法加载,无法加载xml文件,c++,opencv,face-detection,C++,Opencv,Face Detection,我正在尝试使用OpenCv 2.3进行人脸检测。我试图在我的项目中加载“haarcascade_frontalface_alt_tree.xml”,但始终无法加载xml文件 CvHaarClassifierCascade * pCascade = 0; // the face detector const char* file ="C:\OpenCV2.3\opencv\data\haarcascades\haarcascade_frontalface_alt_tree

我正在尝试使用OpenCv 2.3进行人脸检测。我试图在我的项目中加载“haarcascade_frontalface_alt_tree.xml”,但始终无法加载xml文件

    CvHaarClassifierCascade * pCascade = 0;  // the face detector   
const char* file ="C:\OpenCV2.3\opencv\data\haarcascades\haarcascade_frontalface_alt_tree.xml" ; 
pCascade = (CvHaarClassifierCascade*) cvLoad(file , NULL, NULL, NULL);
    if (!pCascade)   { 
        exit(-1);    // unable to load xml 
    }
我相信我正经历着和你一样的问题

我尝试在cvLoad命令之前加载一个图像,但没有帮助

我使用的是OpenCV 2.3,我的配置就是这样

我正在使用这些库(我假设我的配置是正确的,文件存在并且可以使用Notepad++打开)

#包括
#包括“opencv2\opencv.hpp”
#包括“cv.h”
#包括“highgui.h”
//#包括“cvaux.h”
使用名称空间cv;
#pragma注释(lib,“opencv_core230d.lib”)
#pragma注释(lib,“opencv_highgui230d.lib”)
//#pragma注释(lib,“opencv_contrib230d.lib”)
//#pragma注释(lib,“opencv_calib30d.lib”)
//#pragma注释(lib,“opencv_features2d230d.lib”)
//#pragma注释(lib,“opencv_flann230d.lib”)
//#pragma注释(lib,“opencv_gpu230d.lib”)
#pragma注释(lib,“opencv\u haartraining\u engined.lib”)
#pragma注释(lib,“opencv_imgproc230d.lib”)
//#pragma注释(lib,“opencv_legacy230d.lib”)
//#pragma注释(lib,“opencv_ml230d.lib”)
//#pragma注释(lib,“opencv_objdetect230d.lib”)
//#pragma注释(lib,“opencv\u video230d.lib”)

要缩小问题范围,在调用
cvLoad
之前,您应该检查文件是否存在。这里有一个方法:

struct stat buf;
int statResult = stat(file,&buf);
if (statResult || buf.st_ino < 0) {
    cout << "File not found: " << file << endl;
    exit(-2);
}

我认为您使用的是过时的OpenCV 1教程,与当前版本的
haarcascade\u frontalface\u alt\u tree.xml
不兼容。试试看。该教程中的代码适用于我:

CascadeClassifier face_cascade;
if (!face_cascade.load( file) ) { 
    cout << "Couldn't load face_cascade" << endl;
    exit(-1); 
}

cout << "Loaded face_cascade" << endl;
cascade分类器面_cascade;
如果(!face_cascade.load(file)){

cout要缩小问题范围,在调用
cvLoad
之前,您应该检查文件是否存在。以下是一种方法:

struct stat buf;
int statResult = stat(file,&buf);
if (statResult || buf.st_ino < 0) {
    cout << "File not found: " << file << endl;
    exit(-2);
}

我认为您使用的是过时的OpenCV 1教程,该教程不适用于当前版本的
haarcascade\u frontalface\u alt\u tree.xml
。请尝试使用。该教程中的代码适用于我:

CascadeClassifier face_cascade;
if (!face_cascade.load( file) ) { 
    cout << "Couldn't load face_cascade" << endl;
    exit(-1); 
}

cout << "Loaded face_cascade" << endl;
cascade分类器面_cascade;
如果(!face_cascade.load(file)){

这在我身上也发生过,但最后我想我发现了问题所在

OpenCV有两个不同的库*d.lib和*.lib。d表示调试

问题是您需要在适当的模式下为您的环境(在我的情况下是vs)设置适当的库

d、 调试时使用lib,发布时使用.lib

在我的项目中,我还需要在发布模式下运行它,以使其正常工作:)

我的vs2009中的此设置可以在属性、链接器、输入和其他依赖项下找到


最诚挚的问候

这也发生在我身上,但最后我想我发现了问题所在

OpenCV有两个不同的库*d.lib和*.lib。d表示调试

问题是您需要在适当的模式下为您的环境(在我的情况下是vs)设置适当的库

d、 调试时使用lib,发布时使用.lib

在我的项目中,我还需要在发布模式下运行它,以使其正常工作:)

我的vs2009中的此设置可以在属性、链接器、输入和其他依赖项下找到


问候您

检查带有“haarcascade\u frontalface\u alt.xml”文件名的字符串是否正确。 我遇到了这个问题,无法识别目录分隔符。我将“\”字符改为“/”,教程正常运行。
请注意,我使用的MacOS 10.8.3与Windows 7、Visual Studio 2012和opencv 2.44并行运行-我使用的是教程的第2版

请检查带有“haarcascade\u frontalface\u alt.xml”文件名的字符串是否正确。 我遇到了这个问题,无法识别目录分隔符。我将“\”字符改为“/”,教程正常运行。
请注意,我使用的MacOS 10.8.3与Windows 7、Visual Studio 2012和opencv 2.44并行运行-我使用的是教程的第2版

我希望OP能够评论您的哪些解决方案回答了他的问题。我希望OP能够评论您的哪些解决方案回答了他的问题。您是如何使用该库的?可以吗你能再解释一下吗?你是如何使用图书馆的?你能再解释一下吗?