基于OpenCV的人脸识别,主要是用到了训练好的haarcascade_frontalface_default.xml文件,这是OpenCV自带的开源库文件,只需要加载进程序之中即可。
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
//训练文件路径
//Note:路径需要用双右下划线,即"\\"
string xmlPath = "F:\\OpenCV\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml";
int main(int argc,char** atgv) {
Mat img = imread("face.jpg");
imshow("input image", img);
CascadeClassifier detector;
detector.load(xmlPath);
if (!detector.load(xmlPath)) //加载训练文件
{
cout << "不能加载指定的xml文件" << endl;
return -1;
}
vector<Rect> faces;
detector.detectMultiScale(img, faces, 1.1, 3, 0, Size(30, 30));
for (size_t t = 0; t < faces.size(); t++){
rectangle(img, faces[t], Scalar(0, 0, 255), 2, 8);
}
imshow("Result", img);
waitKey(0);
return 0;
}