基于opencv的人脸检测程序
2014-10-20 12:16
441 查看
#include <iostream> #include <stdio.h> #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <cv.h> #include <highgui.h> using namespace std; using namespace cv; /** Function Headers */ void detectAndDisplay(Mat& frame); //void detect_and_draw(IplImage* img); /** Global variables */ String face_cascade_name = "haarcascade_frontalface_alt.xml"; //String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml"; CascadeClassifier face_cascade; //CascadeClassifier eyes_cascade; static CvMemStorage* storage = 0; static CvHaarClassifierCascade* cascade = 0; String window_name = "Capture - Face detection"; /** * @function main */ int main(void) { if (!face_cascade.load(face_cascade_name)){ printf("open faces faile"); return -1; } /* if (!eyes_cascade.load(eyes_cascade_name)){ printf("open eyes faile"); return -1; }*/ Mat A = imread("girl4.png", IMREAD_COLOR); if (A.empty()){ cout << "image faile"; } imshow("image", A); waitKey(10); storage = cvCreateMemStorage(0); cvNamedWindow(window_name.c_str(), 1); /*IplImage* image = cvLoadImage("girl4.png", 1); if (image) { detect_and_draw(image); cvWaitKey(0); cvReleaseImage(&image); }*/ detectAndDisplay(A); return 0; } /** * @function detectAndDisplay */ void detectAndDisplay(Mat& frame) { std::vector<Rect> faces; Mat frame_gray; cvtColor(frame, frame_gray, COLOR_BGR2GRAY); equalizeHist(frame_gray, frame_gray); //-- Detect faces face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0, Size(20,20)); for (size_t i = 0; i < faces.size(); i++) { Mat faceROI = frame_gray(faces[i]); std::vector<Rect> eyes; //-- Draw the face Point center(faces[i].x + faces[i].width / 2, faces[i].y + faces[i].height / 2); ellipse(frame, center, Size(faces[i].width / 2, faces[i].height / 2), 0, 0, 360, Scalar(255, 0, 0), 2, 8, 0); } imshow(window_name, frame); waitKey(); }
相关文章推荐
- 基于opencv和QT的人脸(人眼)检测程序
- SmileyFace——基于OpenCV的人脸人眼检测、面部识别程序
- 人脸检测之基于Opencv和MFC创作的换脸小程序
- (学习笔记二)——基于opencv人脸检测原理及实现
- OpenCV学习笔记:基于Haar特征的人脸检测
- opencv程序十九:基于帧间差分法的区域目标入侵检测
- 最简单的ADABOOST人脸检测程序。COPY执行,前提是你配置OpenCV周围环境
- 基于OpenCV的人脸检测总结
- 在fedora15的环境下编译与安装opencv,并测试人脸检测程序
- OpenCV 实践程序12——用分类器对视频进行人脸检测
- 基于opencv的人脸检测代码
- opencv程序十二:人脸检测
- 基于OpenCV的简单的人脸检测
- 基于opencv人脸检测原理及实现
- 基于OpenCv的人脸检测、识别系统学习制作笔记之三
- 如何使基于OpenCV库的人脸检测系统在其它机器上运行
- 基于opencv人脸检测原理及实现
- 基于OpenCV的人脸检测代码
- 基于OpenCV读取摄像头进行人脸检测和人脸识别
- 基于iOS的OpenCV之人脸检测(二)