资源简介
基于肤色的人脸检测技术,opencv的调用。本科毕设
代码片段和文件信息
/**************************************************
*基于肤色的人脸检测
*
**************************************************/
#include
#include
#include
#include
#define MAXL 1000
void histo(IplImage* pSrcImageIplImage* pDstImage);
int main( int argc char** argv )
{
int RGBi;
int count = 0 areamax[2] = {0}cut[2] = {0};
CvRect rect[2];
CvRect s_rect[MAXL];
//声明IplImage指针
IplImage* frame = NULL;
/* IplImage* pframe = NULL;
IplImage* img_8uc1 = NULL;
IplImage* cannyImage = NULL;
*/
CvCapture* pCapture = NULL;
int nFrmNum = 0;
//创建窗口
cvNamedWindow(“video“ 1);
cvNamedWindow(“gray“);
//使窗口有序排列
cvMoveWindow(“video“ 30 0);
cvMoveWindow(“gray“8000);
if( argc > 2 )
{
fprintf(stderr “Usage: bkgrd [video_file_name]\n“);
return -1;
}
//打开摄像头
if (argc ==1)
if( !(pCapture = cvCaptureFromCAM(-1)))
{
fprintf(stderr “Can not open camera.\n“);
return -2;
}
//打开视频文件
if(argc == 2)
if( !(pCapture = cvCaptureFromFile(argv[1])))
{
fprintf(stderr “Can not open video file %s\n“ argv[1]);
return -2;
}
cvQueryframe(pCapture);
double fps = 15;
CvSize size = cvSize(
(int)cvGetCaptureProperty( pCapture CV_CAP_PROP_frame_WIDTH)
(int)cvGetCaptureProperty( pCapture CV_CAP_PROP_frame_HEIGHT)
);
CvVideoWriter* writer = cvCreateVideoWriter(
“out.avi“
CV_FOURCC(‘X‘ ‘V‘ ‘I‘ ‘D‘) fps
size
);
//逐帧读取视频
while(frame = cvQueryframe( pCapture ))
{
//声明IplImage指针
IplImage* pframe = NULL;
IplImage* img_8uc1 = NULL;
IplImage* cannyImage = NULL;
IplImage* gray = NULL;
IplImage* s_gray = NULL;
pframe = cvCloneImage(frame);
nFrmNum++;
img_8uc1 = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U1);
cannyImage = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U1);
gray = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U1);
s_gray = cvCreateImage(cvSize(frame->width frame->height) IPL_DEPTH_8U1);
pframe->origin = frame->origin;
img_8uc1->origin = frame->origin;
cannyImage->origin = frame->origin;
gray->origin = frame->origin;
s_gray->origin = frame->origin;
//直方图均衡化 可以光照补偿
histo(pframepframe);
//进行肤色点的检测
for(int y = 0; y < pframe->height; y++)
{
uchar* ptr = (uchar*)(pframe->imageData + y* pframe->widthStep );
for(int x = 0; x < pframe->width; x++)
{
B = ptr[3*x];
G = ptr[3*x + 1];
R = ptr[3*x + 2];
if(R>95 && G>40 && B>20 && R>G && R>B && max(Rmax(GB))-min(Rmin(GB))>15 && abs(R-B)>15) // 均匀日光下 肤色判断
{
ptr[3*x] = 255;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 8851 2011-05-06 13:05 轮廓检测眼睛\Cpp2.cpp
文件 3462 2011-04-18 15:19 轮廓检测眼睛\Cpp2.dsp
文件 533 2011-04-18 15:19 轮廓检测眼睛\Cpp2.dsw
文件 41984 2011-05-08 16:57 轮廓检测眼睛\Cpp2.ncb
文件 48640 2011-05-08 16:57 轮廓检测眼睛\Cpp2.opt
文件 242 2011-05-08 16:55 轮廓检测眼睛\Cpp2.plg
文件 196677 2011-05-06 13:05 轮廓检测眼睛\Debug\Cpp2.exe
文件 312560 2011-05-06 13:05 轮廓检测眼睛\Debug\Cpp2.ilk
文件 26558 2011-05-06 13:05 轮廓检测眼睛\Debug\Cpp2.obj
文件 4110284 2011-04-18 15:17 轮廓检测眼睛\Debug\Cpp2.pch
文件 476160 2011-05-06 13:05 轮廓检测眼睛\Debug\Cpp2.pdb
文件 148480 2011-05-08 16:55 轮廓检测眼睛\Debug\vc60.idb
文件 102400 2011-05-06 13:05 轮廓检测眼睛\Debug\vc60.pdb
目录 0 2011-05-06 13:05 轮廓检测眼睛\Debug
目录 0 2011-05-08 16:57 轮廓检测眼睛
----------- --------- ---------- ----- ----
5476831 15
- 上一篇:libxl-3.1.zip
- 下一篇:51单片机的一些课程设计项目
相关资源
- 多目标跟踪
- opencv 求二值化图像的形心
- opencv 学习笔记,个人整理的
- 车牌识别代码arm-Linux,opencv
- OPENCV函数手册(带目录)+OpenCV中文参
- opencv实现行人检测
- VC +opencv识别图像中图形显示于界面
- opencv运动物体检测
- 基于opencv 的图像局部放大
- Opencv静态手势识别
- 双边滤波opencv实现
- 图像的平均亮度
- Opencv绘制物体轮廓,定位主要物件坐
-
OpenCV生成xm
l分类器文件 - Linux下QT及OpenCV搭建
- 张正友相机标定(OpenCV实现)223402
- Adaboost人头部检测 opencv vc
- OpenCv+Ocr 图片文字识别源码
- 于老师的人脸识别VS2015工程
- opencv相机检校
- 车型识别系统vc源码opencv
- opencv依靠颜色识别和跟踪物体
- OpenCV的PCA人脸识别
- openCV+qt视频传输
- OpenCV 现实高斯金字塔的源码,非常经
- opencv运动目标检测与跟踪源代码
- labview与Opencv 人眼识别
- opencv 将两幅等宽图像拼接在一起
- 图像分类代码
- OpenCV 1.0.0 patch for ffmpeg errors
评论
共有 条评论