用opencv自带的haar方法进行人脸识别并切割
来源:互联网 发布:免费的视频剪辑软件 编辑:程序博客网 时间:2024/05/16 08:21
// 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分类器进行人脸检测(一)
- 用opencv自带的Haar分类器进行人脸检测(二)
- opencv的haar特征进行人脸识别
- 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
- 用OpenCV自带的haar training程序训练分类器并测试
- 【OpenCV学习笔记】3:OpenCV自带的Haar特征人脸检测
- opencv 04 Haar 人脸识别 vs2015
- OpenCV学习记录(二):自己训练haar特征的adaboost分类器进行人脸识别
- 使用Haar特征进行人脸识别
- OpenCV学习记录(一):使用haar分类器进行人脸识别
- 基于opencv的haar算法以人脸识别为例的训练分类器xml的方法
- 人脸与人眼识别 opencv自带例子
- 使用OpenCV进行人脸识别的三种方法
- 使用OpenCV自带的神经网络对MNIST手写字体进行识别
- Android自带的人脸识别
- 用opencv自带的traincascade.exe训练给予haar特征和LBP特征的分类器
- C++库研究笔记——使用assert还是exception?
- android 限制adb的访问目录
- 润乾——查询条件定义举例
- 为什么需要回调函数?
- 将自己的程序永久写入Android的/system/bin的方法
- 用opencv自带的haar方法进行人脸识别并切割
- 查找数组最大最小值
- 做好先期工作,才能有效沟通
- High一下!
- 输出链表中倒数第m个元素
- D3D9 Samples(10)--Text3D
- c++沉思录笔记(21章代码)通过函数对象解决c++的函数嵌套问题
- bug管理
- 关于__proto__与prototype ---写给懂java的人看(我们都被忽悠了.........)