通过haar Cascades检测器来实现面部检测

在OpenCV中已经封装的很好只需要使用cv::CascadeClassifier类就可以很容易的实现面部的检测,

三大步:

1.训练好的特征分类器配置文件haarcascade_frontalface_alt.xml

2.使用CascadeClassifier类方法加载配置文件,face_cascade.load("haarcascade_frontalface_alt.xml")

3.使用CascadeClassifier类方法检测一张图片face_cascade.detectMultiScale

完整代码如下:

// haarCascadesFaceDetection.cpp: 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "opencv2/opencv.hpp"

int main()
{
	cv::CascadeClassifier face_cascade;
	face_cascade.load("haarcascade_frontalface_alt.xml");
	
	cv::VideoCapture vC(0);
	while (true) {
		cv::Mat frame;
		vC >> frame;
		
		cv::Mat frame_gray;
		cv::cvtColor(frame, frame_gray, cv::COLOR_BGR2GRAY);
		//cv::equalizeHist(frame_gray, frame_gray);
		// 检测人脸
		std::vector<cv::Rect> faces;
		face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | cv::CASCADE_SCALE_IMAGE, cv::Size(60, 60));
		for (cv::Rect&rec : faces) {
			cv::rectangle(frame, rec, cv::Scalar(0, 0, 255), 2);
		}
		imshow("frame", frame);
		cv::waitKey(10);
	}
	cv::destroyAllWindows();
    return 0;
}

  人脸分类器配置文件下载

posted on 2018-06-06 10:43  zzatp  阅读(342)  评论(0编辑  收藏  举报

导航