用opencv自带的haar方法进行人脸识别并切割
2013-09-29 23:19
656 查看
// FaceRecognize.cpp : 定义控制台应用程序的入口点。 #include "stdafx.h" #include "opencv2/opencv.hpp" #include <iostream> using namespace std; using namespace cv; string cascadeName = "D:\\Program Files\\opencv\\data\\haarcascades\\haarcascade_frontalface_alt.xml"; IplImage* cutImage(IplImage* src, CvRect rect) { cvSetImageROI(src, rect); IplImage* dst = cvCreateImage(cvSize(rect.width, rect.height), src->depth, src->nChannels); cvCopy(src,dst,0); cvResetImageROI(src); return dst; } IplImage* detect( Mat& img, CascadeClassifier& cascade, double scale) { int i = 0; double t = 0; vector<Rect> faces; Mat gray,smallImg(cvRound (img.rows/scale),cvRound(img.cols/scale), CV_8UC1); cvtColor(img,gray,CV_BGR2GRAY); resize(gray,smallImg,smallImg.size(),0,0,INTER_LINEAR); equalizeHist(smallImg,smallImg); t=(double)cvGetTickCount(); cascade.detectMultiScale(smallImg,faces,1.3,2,CV_HAAR_SCALE_IMAGE,Size(30,30)); t=(double)cvGetTickCount()-t; printf("detection time = %g ms\n", t/((double)cvGetTickFrequency()*1000.) ); for( vector<Rect>::const_iterator r = faces.begin(); r != faces.end();r++,i++) { IplImage* temp = cutImage(&(IplImage(img)), cvRect(r->x, r->y, 250, 250));// 或 r->width, r->height return temp; } return NULL; } int _tmain(int argc, _TCHAR* argv[]) { CascadeClassifier cascade; if(!cascade.load(cascadeName)) { return -1; } Mat srcImg, targetImg; IplImage* faceImage1; srcImg = imread("1.jpg"); faceImage1 = detect(srcImg,cascade,1); if (faceImage1 == NULL) { return -1; } cvSaveImage("face.jpg", faceImage1, 0); cout<<"over"; getchar(); return 0; }
顺便附上我的切割图像
相关文章推荐
- opencv自带的haar分类器进行人脸识别
- 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
- 基于opencv的haar算法以人脸识别为例的训练分类器xml的方法
- 用opencv自带的Haar分类器进行人脸检测(二)
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法 .
- opencv的haar特征进行人脸识别
- 用opencv自带的Haar分类器进行人脸检测(一)
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- OpenCV学习记录(二):自己训练haar特征的adaboost分类器进行人脸识别 标签: 脸部识别opencv 2017-07-03 21:38 26人阅读
- 基于opencv2.0的haar算法以人脸识别为例的训练分类器xml的方法
- 使用OpenCV进行人脸识别的三种方法
- 实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图
- 基于OpenCV读取摄像头进行人脸检测和人脸识别
- 基于OpenCV读取摄像头进行人脸检测和人脸识别