资源简介
基于肤色的人脸检测技术,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的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- 论文研究-基于肤色和AdaBoost算法的彩
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
- openCV 上的小波变换
- 基于OPENCV的车牌识别系统设计
- 617张国内车牌60-17bmp图片用于OpenCV正样
- hog特征提取,c版本代码
- 基于Qt5.8+OpenCV3.2的Basler多相机触发开
- 基于Opencv实现的图像纠偏
评论
共有 条评论