我一直在使用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.xml
,haarcascade_mcs_righteye.xml
,haarcascade_mcs_lefteye.xml
haarcascade_mcs_eyepair_small.xml
,haarcascade_mcs_eyepair_small.xml
,haarcascade_mcs_eyepair_big.xml
,haarcascade_lefteye_2splits.xml
如果有人能解决我的问题,我将不胜感激!该来源可通过Opencv文档here
获得答案 0 :(得分:2)
我意识到我的问题的答案,我必须使用.xml
文件的完整路径并更改我的文件夹的权限(授予所有权限)。例如:
String face_cascade_name = "C:\\Opencv-2.4.9\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml";