资源简介
基于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
相关资源
- 基于OpenCv的旋转匹配
- opencv果实分割与识别
- linux下关于Qt界面的摄像头v4l2操作源码
- 智能车MT9V034摄像头调试上位机
- 摄像头模块OV2640程序代码
- qt环境下使用opencv打开双摄像头并保存
- IP摄像头二次开发SDK开发包
- opencv学习手势轮廓识别源代码
- OpenCV2 计算机视觉编程手册 配套源代
- 基于FPGA的OV7670摄像头采集及实时显示
- 基于opencv的双目测距代码+文章
- opencvc车流量统计
- 大华摄像头直连插件webplugin.exe
- 车辆与车道线的检测与跟踪
- OV7670摄像头使用浅谈.pdf
- OV7725摄像头+FIFOAL422B 模块,只要是个
- 基于opencv实现的图像拼接
- ROI区域&图像混合例程by浅墨
- ASM 人脸特征点提取
- 车牌识别源代码
- Linux PC下UVC摄像头采集并用x264进行编
- USB摄像头拍照获取图片识别条形码
- 并行计算mpi与openmp之蒙特卡洛求不规
- CCM手机摄像头培训资料.ppt
- Opencv下利用SIFT、SURF、ORB三种特征点实
- opencv 、directshow捕获摄像头实时播放
- Opencv和图像分类
- 基于opencv的车道线检测代码
- OPENCv 在图片上写字,各种格式
- QT+ffmpeg+多摄像头+实时Ubuntu直接可用(
评论
共有 条评论