美文网首页
人脸识别代码(基于OpenCV)

人脸识别代码(基于OpenCV)

作者: Epiphron | 来源:发表于2018-02-19 18:58 被阅读0次

    `

    #include “opencv2/objdetect/objdetect.hpp”
    #include “opencv2/highgui/highgui.hpp”
    #include “opencv2/imgproc/imgproc.hpp”
    #include <iostream>
    #include<stdio.h>
    using namespace std;
    using namespace cv;
    
    void detectAndDisplay(Mat frame);
    
      //——————————–【全局变量声明】———————————————-
    // 描述:声明全局变量
    //————————————————————————————————-
    //注意,需要把”haarcascade_frontalface_alt.xml”和”haarcascade_eye_tree_eyeglasses.xml”这两个文件复制到工程路径下
    String face_cascade_name = “C:\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml”;
    String eyes_cascade_name = “C:\\opencv\\sources\\data\\haarcascades\\haarcascade_eye_tree_eyeglasses.xml”;
    CascadeClassifier face_cascade;
    CascadeClassifier eyes_cascade;
    string window_name = “Capture – Face detection”;
    RNG rng(12345);
    
    //——————————–【help( )函数】———————————————-
    // 描述:输出帮助信息
    //————————————————————————————————-
    
    //———————————–【main( )函数】——————————————–
    // 描述:控制台应用程序的入口函数,我们的程序从这里开始
    //————————————————————————————————-
    int main(void)
    {
    VideoCapture capture;
    Mat frame;
    
    //– 1. 加载级联(cascades)
    if (!face_cascade.load(face_cascade_name)) { printf(“–(!)Error loading\n”); return -1; };
    if (!eyes_cascade.load(eyes_cascade_name)) { printf(“–(!)Error loading\n”); return -1; };
    
    //– 2. 读取视频
    capture.open(1);
    if (capture.isOpened())
    {
    for (;;)
    {
    capture >> frame;
    
    //– 3. 对当前帧使用分类器(Apply the classifier to the frame)
    if (!frame.empty())
    {
    detectAndDisplay(frame);
    }
    else
    {
    printf(” –(!) No captured frame — Break!”); break;
    }
    
    int c = waitKey(10);
    if ((char)c == ‘c’) { break; }
    
    }
    }
    return 0;
    }
    
    void detectAndDisplay(Mat frame)
    {
    std::vector<Rect> faces;
    Mat frame_gray;
    
    cvtColor(frame, frame_gray, COLOR_BGR2GRAY);
    equalizeHist(frame_gray, frame_gray);
    
    //– 人脸检测
    //此句代码的OpenCV2版为:
    //face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|C
    

    `

    相关文章

      网友评论

          本文标题:人脸识别代码(基于OpenCV)

          本文链接:https://www.haomeiwen.com/subject/gufwtftx.html