我是靠谱客的博主 冷艳香水,最近开发中收集的这篇文章主要介绍Opencv face detection人脸检测,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

利用opencv进行人脸检测的简单程序:

#include<iostream>
#include<stdio.h>
#include<vector>
#include<time.h>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/objdetect/objdetect.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
//计时函数
inline double cpu_time(){
    return clock()*1000/CLOCKS_PER_SEC;
}
void detectAndDraw(Mat& img, CascadeClassifier& cascade);

int main(){
    Mat image;
    image = imread("1.jpg");
    resize(image,image,Size(256,256));
    CascadeClassifier cascade;//nestedCascade;
    cascade.load("haarcascade_frontalface_alt.xml");
    namedWindow("Origninal");
    imshow("Origninal",image);
    waitKey(100);
    getchar();
    double t1,t2;
    t1 = cpu_time();
    detectAndDraw(image,cascade);
    t2 = cpu_time();
    cout<<"Time for one image: "<<t2-t1<<endl;
    return 0;
}
//人脸检测
void detectAndDraw(Mat& img, CascadeClassifier& cascade){
    int i = 0;
    double t = 0;
    vector<Rect> faces;
    Mat gray;
    cvtColor(img,gray,CV_BGR2GRAY);
    //1.2是每次缩放比例,1表示人脸被至少探测到两次才算Size为缩到的最小尺寸
    cascade.detectMultiScale(gray, faces,1.2,1,0|CV_HAAR_SCALE_IMAGE,Size(20,20));
    cout<<"Total face number: "<<faces.size()<<endl;
    for(int i=0; i<faces.size();i++){
        Mat face;
        img(faces[i]).copyTo(face);
        namedWindow("Face");
        imshow("Face",face);
        waitKey(100);
        getchar();
    }   
}

最后

以上就是冷艳香水为你收集整理的Opencv face detection人脸检测的全部内容,希望文章能够帮你解决Opencv face detection人脸检测所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部