C++ opencv-haarcascades不适用于眼睛检测

C++ opencv-haarcascades不适用于眼睛检测,c++,xml,opencv,C++,Xml,Opencv,我一直在学习使用opencv通过网络摄像头对人脸和眼睛进行对象跟踪的教程。问题是,即使人脸检测使用haarcascade\u frontalface\u alt.xml,我也没有收到使用haarcascade\u eye\u tree\u eyegals.xml(或任何其他用于眼睛检测的haarcascade)进行眼睛检测的结果。在编写代码之后,我注意到一些错误,这些错误不允许我的代码运行,因此我修改为教程源代码。 由此: if( !face_cascade.load( face_cascade

我一直在学习使用opencv通过网络摄像头对人脸和眼睛进行对象跟踪的教程。问题是,即使人脸检测使用
haarcascade\u frontalface\u alt.xml
,我也没有收到使用
haarcascade\u eye\u tree\u eyegals.xml
(或任何其他用于眼睛检测的haarcascade)进行眼睛检测的结果。在编写代码之后,我注意到一些错误,这些错误不允许我的代码运行,因此我修改为教程源代码。 由此:

if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading\n"); return -1; };
 if( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading\n"); return -1;};
为此:

 eyes_cascade.load( eyes_cascade_name );
 face_cascade.load( face_cascade_name ) ;
这是在源代码中进行的唯一修改

注意

->所有的haarcascades都在源目录中

->只有一些HAARCASDE提供结果
HAARCASDE\u frontalface\u alt
&
HAARCASDE\u配置文件

->我已经尝试了其他可用的haarcascade用于眼睛检测,包括
haarcascade\u eye\u tree\u eye眼镜.xml,
haarcascade\u eye haarcascade\u righteye\u 2splits.xml
haarcascade\u mcs\u lefteye.xml
haarcascade\u mcs\u eyepair\u small.xml
haarcascade\u mcs\u eyepair\u small.xml
haarcascade\u mcs\u eyepair\u big.xml
haarcascade\u lefteye\u 2splits.xml


如果有人能解决我的问题,我们将不胜感激!源代码可通过Opencv文档获得

我意识到问题的答案,我必须使用
.xml
文件的完整路径,并更改文件夹的权限(授予所有权限)。例如:

String face\u cascade\u name=“C:\\Opencv-2.4.9\\Opencv\\sources\\data\\haarcascade\\haarcascade\u frontalace\u alt.xml”;

>如果有人能解决我的问题。我不太确定你的问题是什么。“它不起作用”很难解决…问题是很多haarcascades不会返回任何结果,如果我一字不差地遵循教程,我的
eyes\u cascade
不返回任何值的潜在原因是什么?就像我说的。如果没有看到一些代码、错误消息或其他东西,那么很难解决一些“不起作用”的问题。您是否已确保所有文件路径对于不工作的路径都是正确的?它们确实在你认为的地方,等等。经过10个小时的反复试验,我刚刚解决了这个问题,xml的相对路径只对一些haarcascades有效,但当我将字符串路径更改为它们的完整路径时,haarcascades有效。我昨晚也试过了,但没用。我肯定做错了什么。@GPPK您知道为什么只有少数
.xml的
可以从源目录工作吗?但是所有的工作都是从完整路径开始的?是的,报告是很重要的。我知道这是一个简单的错误,但似乎仍然无法理解为什么绝对路径对一些人有效,而不是所有人