ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

opencv::haar特征

2019-10-18 17:03:14  阅读:317  来源: 互联网

标签:roi eyes cast haar frame opencv 特征 static faces


 

视频流抓取人脸和眼睛

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

using namespace cv;
using namespace std;

CascadeClassifier face_cascader; //分类器
CascadeClassifier eye_cascader;
String facefile = "D:/Appinstall/opencv-3.4.4_vc15/etc/haarcascades/haarcascade_frontalface_alt.xml";
String eyefile =  "D:/Appinstall/opencv-3.4.4_vc15/etc/haarcascades/haarcascade_eye.xml";

int main(int argc, char** argv) {
    if (!face_cascader.load(facefile)) {
        printf("could not load face feature data...\n");
        return -1;
    }
    if (!eye_cascader.load(eyefile)) {
        printf("could not load eye feature data...\n");
        return -1;
    }
    namedWindow("camera-demo", CV_WINDOW_AUTOSIZE);
    VideoCapture capture(0); //读取摄像头视频流
    Mat frame;
    Mat gray;
    vector<Rect> faces;
    vector<Rect> eyes;
    while (capture.read(frame)) {
        cvtColor(frame, gray, COLOR_BGR2GRAY);
        equalizeHist(gray, gray);
        face_cascader.detectMultiScale(gray, faces, 1.2, 3, 0, Size(30, 30));
        for (size_t t = 0; t < faces.size(); t++) {
            Rect roi;
            roi.x = faces[static_cast<int>(t)].x;
            roi.y = faces[static_cast<int>(t)].y;
            roi.width = faces[static_cast<int>(t)].width;
            roi.height = faces[static_cast<int>(t)].height / 2;

            Mat faceROI = frame(roi);
            eye_cascader.detectMultiScale(faceROI, eyes, 1.2, 3, 0, Size(20, 20));
            for (size_t k = 0; k < eyes.size(); k++) {
                Rect rect;
                rect.x = faces[static_cast<int>(t)].x + eyes[k].x;
                rect.y = faces[static_cast<int>(t)].y + eyes[k].y;
                rect.width = eyes[k].width;
                rect.height = eyes[k].height;
                rectangle(frame, rect, Scalar(0, 255, 0), 2, 8, 0);
            }
            rectangle(frame, faces[static_cast<int>(t)], Scalar(0, 0, 255), 2, 8, 0);
        }
        imshow("camera-demo", frame);
        char c = waitKey(30);
        if (c == 27) {
            break;
        }
    }
    waitKey(0);
    return 0;
}

 

标签:roi,eyes,cast,haar,frame,opencv,特征,static,faces
来源: https://www.cnblogs.com/osbreak/p/11699310.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有