问题总结:
1.设计版本不同,在load分类器那块有差距
CascadeClassifier facedetector;
facedetector.load("D:\\opencv\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml")
2.检测目标
detectMultiScale函数
facedetector.detectMultiScale(frame_gray, faces, rejectLevels, levelWeights, 1.1, 3, 0, Size(30, 30), Size(), true);
faces是检测的目标faces.size()查看个数
1.1 searchScaleFactor
3,minNeighbors如果想要提高检测人脸的正确率,设置大一些。
0,flags,用户指定是否要查找所有人脸(默认)或只查找最大人脸
size()设置最小人脸,最大人脸
rejectLevels, levelWeights看我转载的另一篇博客 http://blog.csdn.net/u011783201/article/details/52160629
下面是我调用opencv的haar的人脸分类器,对fddb的数据库检测的代码
#include <fstream>
#include "opencv2\opencv.hpp"
#include "opencv2\objdetect\objdetect.hpp"
#include "opencv2\highgui\highgui.hpp"
#include "opencv2\imgproc\imgproc.hpp"
#include <iostream>
#include "conio.h"
#include "math.h"
#include "time.h"
//#include <sstream>
using namespace cv;
using namespace std;
CascadeClassifier facedetector;
void main()
{
ifstream files("D:\\Data\\FDDB\\FDDB-folds\\FDDB-folds\\FDDB-fold-1