1目标
OpenCV & C++实现人脸识别
2代码
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
//训练文件路径
//Note:路径需要用双右下划线,即"\\"
string xmlPath = "D:\\Program Files\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml";
int main(int argc, char** atgv) {
Mat img = imread("face1.jpg");
resize(img, img, Size(500, 500));
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;
}
3OpenCV中既有的训练结果
OpenCV中自带训练结果,加载出来就能使用,不用重新训练。
string xmlPath = "D:\\Program Files\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_default.xml";
残留问题
接口还没细研究,代码没细调。