概述
利用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人脸检测所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复