opencv::人脸识别

 

 

 

 

 

再次加权重 

 

 

 

 

分  类 器:     判别某个事物是否属于某种分类的器件,两种结果:是、否 
级联分类器:  可以理解为N个单类的分类器串联起来。如果一个事物能属于这一系列串联起来的的所有分类器,则最终结果就是 是,若有一项不符,则判定为否

 

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
    //已训练好的模型
    String cascadeFilePath = "D:/Appinstall/opencv-3.4.4_vc15/etc/haarcascades/haarcascade_frontalface_alt.xml";
    CascadeClassifier face_cascade; //分类器
    if (!face_cascade.load(cascadeFilePath)) {
        printf("could not load haar data...\n");
        return -1;
    }
    Mat src, gray_src;
    src = imread("D:/images/cvtest.png");
    cvtColor(src, gray_src, COLOR_BGR2GRAY);
    //级联检测
    equalizeHist(gray_src, gray_src);
    imshow("input image", src);

    vector<Rect> faces;
    face_cascade.detectMultiScale(gray_src, faces, 1.1, 2, 0, Size(30, 30));
    for (size_t t = 0; t < faces.size(); t++) {
        rectangle(src, faces[t], Scalar(0, 0, 255), 2, 8, 0);
    }
    namedWindow("output", CV_WINDOW_AUTOSIZE);
    imshow("output", src);

    waitKey(0);
    return 0;
}

 

posted @ 2019-10-11 10:31  osbreak  阅读(195)  评论(0编辑  收藏  举报