代码中的模型是训练好的:haarcascade_frontalface_default.xml
#include#include #include #include #include using namespace cv; using namespace std; /// 人脸检测 // void main() { VideoCapture cap(0);//无外接摄像头用0 Mat img; while (true) { cap.read(img); CascadeClassifier faceCascade; faceCascade.load("Resources/haarcascade_frontalface_default.xml");//从文件加载分类器(已经训练好的模型) if (faceCascade.empty()) { cout << "XML file not loaded" << endl; }//判断文件是否调用,存在 //创建矩形向量 vector faces; //人脸级联点检测多尺度法 faceCascade.detectMultiScale(img, faces, 1.1, 10);//在输入图像中检测不同大小的对象。检测到的对象将以矩形列表的形式返回。img, faces, 1.1, 10 for (int i = 0; i < faces.size(); i++) { rectangle(img, faces[i].tl(), faces[i].br(), Scalar(255, 0, 255), 3);//绘制矩形 } imshow("Image", img); waitKey(1); } }



