opencv - haarcascades不适用于眼睛检测

时间:2014-05-31 10:28:59

标签: c++ xml opencv

我一直在使用opencv通过网络摄像头跟踪教程here以进行面部和眼睛的对象跟踪。问题是即使面部检测使用haarcascade_frontalface_alt.xml工作,我也没有收到使用haarcascade_eye_tree_eyeglasses.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都在源目录中。

- >只有部分haarcascades提供结果haarcascade_frontalface_alt& haarcascade_profile

- >我尝试了其他可用的haarcascades用于眼睛检测,包括haarcascade_eye_tree_eyeglasses.xml, haarcascade_eye haarcascade_righteye_2splits.xmlhaarcascade_mcs_righteye.xmlhaarcascade_mcs_lefteye.xml haarcascade_mcs_eyepair_small.xmlhaarcascade_mcs_eyepair_small.xmlhaarcascade_mcs_eyepair_big.xmlhaarcascade_lefteye_2splits.xml

如果有人能解决我的问题,我将不胜感激!该来源可通过Opencv文档here

获得

1 个答案:

答案 0 :(得分:2)

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

String face_cascade_name = "C:\\Opencv-2.4.9\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml";