基于opencv的人脸识别毕业论文(opencv人脸识别c++)

1.opencv人脸识别c++

#include #include #include #include #include #include using namespace cv;void detectAndDraw( Mat& img, CascadeClassifier& cascade, CascadeClassifier& nestedCascade, double scale, bool tryflip );//Mat imageresize(Mat &image, Size size); /*int main(){ //VideoCapture cap(0); //打开默认摄像头 VideoCapture cap("F:/nihao.mp4"); if(!cap.isOpened()) { return -1; } Mat frame; Mat edges; CascadeClassifier cascade, nestedCascade; bool stop = false; //训练好的文件名称,放置在可执行文件同目录下 cascade.load("haarcascade_frontalface_alt.xml"); nestedCascade.load("haarcascade_eye_tree_eyeglasses.xml"); while(!stop) { cap>>frame; detectAndDraw( frame, cascade, nestedCascade,2,0 ); if(waitKey(30) >=0) stop = true; } return 0; } */int main(){ Mat image=imread("F:/quanjiafu.jpg"); CascadeClassifier cascade,nestedcascade; cascade.load("F:/Opencv2.4.9/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml"); nestedcascade.load("F:/Opencv2.4.9/opencv/sources/data/haarcascades/haarcascade_eye_tree_eyeglasses.xml"); detectAndDraw(image,cascade,nestedcascade,2,0); waitKey(0); return 0;} void detectAndDraw( Mat& img, CascadeClassifier& cascade, CascadeClassifier& nestedCascade, double scale, bool tryflip ) { int i = 0; double t = 0; //建立用于存放人脸的向量容器 vector faces, faces2; //定义一些颜色,用来标示不同的人脸 const static Scalar colors[] = { CV_RGB(0,0,255), CV_RGB(0,128,255), CV_RGB(0,255,255), CV_RGB(0,255,0), CV_RGB(255,128,0), CV_RGB(255,255,0), CV_RGB(255,0,0), CV_RGB(255,0,255)} ; //建立缩小的图片,加快检测速度 //nt cvRound (double value) 对一个double型的数进行四舍五入,并返回一个整型数! Mat gray, smallImg( cvRound (img.rows/scale), cvRound(img.cols/scale), CV_8UC1 ); //转成灰度图像,Harr特征基于灰度图 cvtColor( img, gray, CV_BGR2GRAY ); //改变图像大小,使用双线性差值 resize( gray, smallImg, smallImg.size(), 0, 0, INTER_LINEAR ); //变换后的图像进行直方图均值化处理 equalizeHist( smallImg, smallImg ); //程序开始和结束插入此函数获取时间,经过计算求得算法执行时间 t = (double)cvGetTickCount(); //检测人脸 //detectMultiScale函数中smallImg表示的是要检测的输入图像为smallImg,faces表示检测到的人脸目标序列,1.1表示 //每次图像尺寸减小的比例为1.1,2表示每一个目标至少要被检测到3次才算是真的目标(因为周围的像素和不同的窗口大 //小都可以检测到人脸),CV_HAAR_SCALE_IMAGE表示不是缩放分类器来检测,而是缩放图像,Size(30, 30)为目标的 //最小最大尺寸 cascade.detectMultiScale( smallImg, faces, 1.1, 2, 0 //|CV_HAAR_FIND_BIGGEST_OBJECT //|CV_HAAR_DO_ROUGH_SEARCH |CV_HAAR_SCALE_IMAGE , Size(30, 30)); //如果使能,翻转图像继续检测 if( tryflip ) { flip(smallImg, smallImg, 1); cascade.detectMultiScale( smallImg, faces2, 1.1, 2, 0 //|CV_HAAR_FIND_BIGGEST_OBJECT //|CV_HAAR_DO_ROUGH_SEARCH |CV_HAAR_SCALE_IMAGE , Size(30, 30) ); for( vector::const_iterator r = faces2.begin(); r != faces2.end(); r++ ) { faces.push_back(Rect(smallImg.cols - r->x - r->width, r->y, r->width, r->height)); } } t = (double)cvGetTickCount() - t; // qDebug( "detection time = %g ms\n", t/((double)cvGetTickFrequency()*1000.) ); for( vector::const_iterator r = faces.begin(); r != faces.end(); r++, i++ ) { Mat smallImgROI; vector nestedObjects; Point center; Scalar color = colors[i%8]; int radius; double aspect_ratio = (double)r->width/r->height; if( 0.75 < aspect_ratio && aspect_ratio < 1.3 ) { //标示人脸时在缩小之前的图像上标示,所以这里根据缩放比例换算回去 center.x = cvRound((r->x + r->width*0.5)*scale); center.y = cvRound((r->y + r->height*0.5)*scale); //Size s=Size(cvRound((r->width + r->height)*0.25*scale)*2,cvRound((r->width + r->height)*0.25*scale)*2); //Mat image=imread("F:/yaoming1.jpg"); //Mat nimage=imageresize(image,s); //Mat imageROI=img(Rect(center.x-s.width/2,center.y-s.height/2,nimage.cols,nimage.rows)); //addWeighted(imageROI,0.1,nimage,3,0.,imageROI); radius = cvRound((r->width + r->height)*0.25*scale); circle( img, center, radius, color,2, 8, 0 ); } else rectangle( img, cvPoint(cvRound(r->x*scale), cvRound(r->y*scale)), cvPoint(cvRound((r->x + r->width-1)*scale), cvRound((r->y + r->height-1)*scale)), color, 3, 8, 0); if( nestedCascade.empty() ) continue; smallImgROI = smallImg(*r); //同样方法检测人眼 nestedCascade.detectMultiScale( 。

基于MATLAB的人脸识别毕业论文,人脸识别考勤系统毕业论文,基于人脸识别的考勤系统设计毕业论文

2.opencv实现人脸识别有多少种算法

OpenCV在2.4.1以后的版本中开始自带人脸识别,共有三种人脸识别算法的实现,分别是PCA , LDA , LBPH. OpenCV2创建方法如下:

cv::Ptr<cv::FaceRecognizer>facerPCA,facerLDA;

cv::Ptr<cv::FaceRecognizer>facerLBPH=cv::();

facerPCA=cv::Algorithm::create<cv::FaceRecognizer>("FaceRecognizer.Eigenfaces");

facerLDA=cv::Algorithm::create<cv::FaceRecognizer>("FaceRecognizer.Fisherfaces");

在OpenCV3中,人脸识别的实现被移动到第三方库opencv_contrib中,而且OpenCV3版本的各个版本3.0.0,3.2.0,3.3.0的创建方法均不同,且都被移动到cv::face::名字空间下.

的人,毕业论文,识别,opencv

3.用opencv实现人脸检测与跟踪 源程序

import pFaceDetect.*;

import JMyron.*;

PFaceDetect face;

JMyron m;

PImage img;

void setup() {

size(320,240);

m = new JMyron();

m.start(width,height);

m.findGlobs(0);

face = new PFaceDetect(this,width,height,

"haarcascade_frontalface_default.xml");

frameRate(15);

img = createImage(width,height,ARGB);

rectMode(CORNER);

noFill();

stroke(255,0,0);

smooth();

}

void draw() {

background(0);

m.update();

arraycopy(m.cameraImage(),img.pixels);

img.updatePixels();

face.findFaces(img);

image(img,0,0);

drawFace();

}

void drawFace() {

int [][] res = face.getFaces();

if (res.length>0) {

for (int i=0;i<res.length;i++) {

int x = res[i][0];

int y = res[i][1];

int w = res[i][2];

int h = res[i][3];

rect(x,y,w,h);

}

}

}

void stop() {

m.stop();

super.stop();

}

能够识别脸部

基于opencv的人脸识别毕业论文

转载请注明出处众文网 » 基于opencv的人脸识别毕业论文(opencv人脸识别c++)

资讯

毕业论文修改后再评阅多少人(大学毕业答辩时会有多少人观看?)

阅读(63)

本文主要为您介绍毕业论文修改后再评阅多少人,内容包括大学毕业答辩时会有多少人观看?,毕业论文调查问卷的数量一般是多少,关于盲审的,求助。先是自我介绍,包括姓名,系别,论文题目等然后把自己的论文主要内容概括一下,也就是自己的论文摘要和个

资讯

福建医科大学毕业论文格式(论文格式)

阅读(65)

本文主要为您介绍福建医科大学毕业论文格式,内容包括毕业论文的格式要求,论文的格式,论文格式。标题 (黑体 四号) 称谓 (宋体 五号) (学院 学号) (宋体 小五) 摘 要 (宋体五号加粗) 内容 (宋体 五号)关键词 (宋体

资讯

英国毕业论文金融主题(求一篇金融学本科毕业论文开题报告)

阅读(68)

本文主要为您介绍英国毕业论文金融主题,内容包括跪求温莎大学商学院金融专业论文一篇,2000字?,金融学论文选题怎么选,毕业论文,方向是以微观金融为主,公司理财设计资本结构、融资渠道。我国区域机构信用卡业务的发展与问题分析 自1985年中

资讯

生物科学本科毕业论文答辩PPT(求毕业设计答辩ppt?)

阅读(70)

本文主要为您介绍生物科学本科毕业论文答辩PPT,内容包括求毕业设计答辩ppt?,论文答辩PPT模板,下列各项加点成语使用正确的一项是(3分)A.在论文答辩的整个过。-不用这么大方吧,貌似毕业设计得分没有把ppt的算在内,所以你只要随便把主要的东西做

资讯

科研类毕业论文中交叉教师评语(毕业设计(论文)指导教师评语)

阅读(70)

本文主要为您介绍科研类毕业论文中交叉教师评语,内容包括硕士学位论文中期报告导师评语怎么写,毕业设计(论文)指导教师评语,本科生导师评语怎么写。在为期三个月的毕业设计中,该同学能在老师的严格要求下顺利完成整个毕业设计工作和论文的撰

资讯

毕业论文字数从哪部分算(本科生论文大概得写多少字)

阅读(77)

本文主要为您介绍毕业论文字数从哪部分算,内容包括本科生论文大概得写多少字,本科论文一般字数要求多少?,硕士研究生毕业论文字数从哪里开始算起?。一般而言,非21985学校的本科毕业论文字数在6000-8000左右(工程类需要制图的专业则会超过这个

资讯

数控技术毕业论文设计(数控专业的毕业论文怎么写?)

阅读(71)

本文主要为您介绍数控技术毕业论文设计,内容包括数控专业的毕业论文怎么写?,数控类毕业设计论文,数控技术毕业论文。以下给你提供几个相关题目的和内容,因字数有限。你可以作为参考,希望会对你有所帮助!!!经济型数控车床控制系统设计精镗CK-II型

资讯

毕业设计论文必须参加答辩(毕业论文答辩时是否让带演讲稿)

阅读(89)

本文主要为您介绍毕业设计论文必须参加答辩,内容包括本科毕业论文没写答辩没去会怎么样,我申请了毕业论文,最后有事情没有参加答辩有什么后果?,是不是一定要参加毕业答辩的?。可以。毕业生在论文答辩时一般可脱稿,也可半脱稿,也可完全不脱稿

资讯

毕业论文修改后再评阅多少人(大学毕业答辩时会有多少人观看?)

阅读(63)

本文主要为您介绍毕业论文修改后再评阅多少人,内容包括大学毕业答辩时会有多少人观看?,毕业论文调查问卷的数量一般是多少,关于盲审的,求助。先是自我介绍,包括姓名,系别,论文题目等然后把自己的论文主要内容概括一下,也就是自己的论文摘要和个

资讯

福建医科大学毕业论文格式(论文格式)

阅读(65)

本文主要为您介绍福建医科大学毕业论文格式,内容包括毕业论文的格式要求,论文的格式,论文格式。标题 (黑体 四号) 称谓 (宋体 五号) (学院 学号) (宋体 小五) 摘 要 (宋体五号加粗) 内容 (宋体 五号)关键词 (宋体

资讯

英国毕业论文金融主题(求一篇金融学本科毕业论文开题报告)

阅读(68)

本文主要为您介绍英国毕业论文金融主题,内容包括跪求温莎大学商学院金融专业论文一篇,2000字?,金融学论文选题怎么选,毕业论文,方向是以微观金融为主,公司理财设计资本结构、融资渠道。我国区域机构信用卡业务的发展与问题分析 自1985年中

资讯

生物科学本科毕业论文答辩PPT(求毕业设计答辩ppt?)

阅读(70)

本文主要为您介绍生物科学本科毕业论文答辩PPT,内容包括求毕业设计答辩ppt?,论文答辩PPT模板,下列各项加点成语使用正确的一项是(3分)A.在论文答辩的整个过。-不用这么大方吧,貌似毕业设计得分没有把ppt的算在内,所以你只要随便把主要的东西做

资讯

科研类毕业论文中交叉教师评语(毕业设计(论文)指导教师评语)

阅读(70)

本文主要为您介绍科研类毕业论文中交叉教师评语,内容包括硕士学位论文中期报告导师评语怎么写,毕业设计(论文)指导教师评语,本科生导师评语怎么写。在为期三个月的毕业设计中,该同学能在老师的严格要求下顺利完成整个毕业设计工作和论文的撰