資源簡介
基于OpenCV讀取攝像頭的人臉檢測和識別,人臉檢測使用別人訓練好的數據進行檢測,程序可以選擇特征臉、fisherface或LBP方法來實現人臉識別。

代碼片段和文件信息
#include?“stdafx.h“
#include?“cv.h“
#include?“highgui.h“
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?“detect_recog.h“
#include???
#include???
#include??
#include?
#include?
#include?
#include?
#include???
#include??
using?namespace?std;
using?namespace?cv;
//檢測并圈出人臉,并將檢測到的人臉進行判斷屬于訓練圖像中的哪一類
void?recog_and_draw(?IplImage*?img?)?
{
????static?CvScalar?colors[]?=?
????{
????????{{00255}}
????????{{0128255}}
????????{{0255255}}
????????{{02550}}
????????{{2551280}}
????????{{2552550}}
????????{{25500}}
????????{{2550255}}
????};
????IplImage?*gray?*small_img;
????int?i?j;
????gray?=?cvCreateImage(?cvSize(img->widthimg->height)?8?1?);
????small_img?=?cvCreateImage(?cvSize(?cvRound?(img->width/scale)
?????????????????????????cvRound?(img->height/scale))?8?1?);
????cvCvtColor(?img?gray?CV_BGR2GRAY?);?//?彩色RGB圖像轉為灰度圖像?
????cvResize(?gray?small_img?CV_INTER_LINEAR?);
????cvEqualizeHist(?small_img?small_img?);?//?直方圖均衡化?
????cvClearMemStorage(?storage?);
????if(?cascade?)
????{
????????double?t?=?(double)cvGetTickCount();?
????????CvSeq*?faces?=?cvHaarDetectobjects(?small_img?cascade?storage
????????????????????????????????????????????1.1?2?0
????????????????????????????????????????????//|CV_HAAR_FIND_BIGGEST_object
????????????????????????????????????????????//|CV_HAAR_DO_ROUGH_SEARCH
????????????????????????????????????????????|CV_HAAR_DO_CANNY_PRUNING
????????????????????????????????????????????//|CV_HAAR_SCALE_IMAGE
????????????????????????????????????????????
????????????????????????????????????????????cvSize(30?30)?);
????????t?=?(double)cvGetTickCount()?-?t;?//?統計檢測使用時間?
????????//printf(?“detection?time?=?%gms\n“?t/((double)cvGetTickFrequency()*1000.)?);
????????for(?i?=?0;?i?(faces???faces->total?:?0);?i++?)
????????{
????????????CvRect*?r?=?(CvRect*)cvGetSeqElem(?faces?i?);?//?將faces數據從CvSeq轉為CvRect?
????????????CvMat?small_img_roi;
????????????CvSeq*?nested_objects;
????????????CvPoint?center;
????????????CvScalar?color?=?colors[i%8];?//?使用不同顏色繪制各個face,共八種色?
????????????int?radius;
????????????center.x?=?cvRound((r->x?+?r->width*0.5)*scale);?//?找出faces中心?
????????????center.y?=?cvRound((r->y?+?r->height*0.5)*scale);
????????????radius?=?cvRound((r->width?+?r->height)*0.25*scale);?
cvGetSubRect(?small_img?&small_img_roi?*r?);
//截取檢測到的人臉區域作為識別的圖像
IplImage?*result;
CvRect?roi;
roi?=?*r;
result?=?cvCreateImage(?cvSize(r->width?r->height)?img->depth?img->nChannels?);
cvSetImageROI(imgroi);
//?創建子圖像
cvCopy(imgresult);
cvResetImageROI(img);
IplImage?*resizeRes;
CvSize?dst_cvsize;
dst_cvsize.width=(int)(100);
dst_cvsize.height=(int)(100);
resizeRes=cvCreateImage(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????154??2013-11-30?15:11??faceRecgnition\data\facedetect.cmd
?????文件???????1677??2013-11-30?15:38??faceRecgnition\data\haarcascade_eye_tree_eyeglasses.xm
?????文件?????837462??2013-11-30?15:47??faceRecgnition\data\haarcascade_frontalface_alt.xm
?????文件???????6266??2013-12-21?15:01??faceRecgnition\Debug\cl.command.1.tlog
?????文件?????114254??2013-12-21?15:01??faceRecgnition\Debug\CL.read.1.tlog
?????文件???????4452??2013-12-21?15:01??faceRecgnition\Debug\CL.write.1.tlog
?????文件?????457662??2013-12-21?15:01??faceRecgnition\Debug\detect_recog.obj
?????文件???????1655??2013-11-30?19:43??faceRecgnition\Debug\facerec1.obj
?????文件?????146432??2013-12-21?15:01??faceRecgnition\Debug\faceRecgnition.exe
?????文件??????????2??2013-11-29?20:56??faceRecgnition\Debug\faceRecgnition.exe.em
?????文件?????????68??2013-11-29?20:56??faceRecgnition\Debug\faceRecgnition.exe.em
?????文件????????381??2013-12-21?15:01??faceRecgnition\Debug\faceRecgnition.exe.intermediate.manifest
?????文件????????406??2013-11-30?14:39??faceRecgnition\Debug\faceRecgnition.exe.manifest
?????文件????1425628??2013-12-21?15:01??faceRecgnition\Debug\faceRecgnition.ilk
?????文件?????????52??2013-12-21?15:01??faceRecgnition\Debug\faceRecgnition.lastbuildstate
?????文件???????2946??2013-12-21?15:01??faceRecgnition\Debug\faceRecgnition.log
?????文件?????260538??2013-12-21?15:00??faceRecgnition\Debug\faceRecgnition.obj
?????文件????1179648??2013-12-21?13:46??faceRecgnition\Debug\faceRecgnition.pch
?????文件????2255872??2013-12-21?15:01??faceRecgnition\Debug\faceRecgnition.pdb
?????文件????????707??2013-11-29?20:56??faceRecgnition\Debug\faceRecgnition.vcxprojResolveAssemblyReference.cache
?????文件??????????0??2013-11-29?20:56??faceRecgnition\Debug\faceRecgnition.write.1.tlog
?????文件????????218??2013-11-29?20:56??faceRecgnition\Debug\faceRecgnition_manifest.rc
?????文件???????1615??2013-12-21?13:46??faceRecgnition\Debug\fisherrec.obj
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
?????文件??????????2??2013-12-21?15:01??faceRecgnition\Debug\li
............此處省略73個文件信息
- 上一篇:QQ文件備份
- 下一篇:MPDV-MES售前演示流程PPT
評論
共有 條評論