-
#include
#include
#include
#ifdef _EiC
#define WIN32
#endif
static CvMemStorage*
storage = 0;
static
CvHaarClassifierCascade* cascade = 0;
void detect_and_draw( IplImage* image
);
const char* cascade_name
=
人脸检测分类器
int main( int argc, char**
argv )
{
CvCapture* capture = 0;
IplImage *frame, *frame_copy = 0;
int optlen =
strlen(
const char*
input_name;
if(
argc > 1 && strncmp( argv[1],
{
cascade_name =
argv[1] + optlen;
input_name = argc > 2 ? argv[2] : 0;
}
else
{
cascade_name
= <
/p>
毕业设计
智能机
器人动态人脸识别系统
陈建州程序
.xml
分类器路径
input_name =
argc > 1 ? argv[1] : 0;
}
cascade =
(CvHaarClassifierCascade*)cvLoad( cascade_name, 0,
0, 0 );
if(
!cascade )//
如果没有找到分类器,输出以下
{
fprintf( stderr,
fprintf( stderr,
return -1;
}
storage =
cvCreateMemStorage(0);
capture = cvCaptureFromCAM( !input_name
? 0 : input_name[0] - '0'
);//
读取摄像头
p>
if(!capture)//
如果没有摄像头读取视频文件
capture = cvCaptureFromA
VI(<
/p>
检测
.avi
cvNamedWindow(
创建窗口
if( capture )
{
for(;;)
{
if(
!cvGrabFrame( capture
))//
从摄像头中抓取帧
break;
frame = cvRetrieveFrame( capture
);//
读取上边抓取的帧
if( !frame )
break;
if( !frame_copy )
frame_copy = cvCreateImage(
cvSize(frame->width,frame->height),
IPL_DEPTH_8U, frame->nChannels );
if( frame->origin ==
IPL_ORIGIN_TL )
cvCopy( frame, frame_copy, 0 );
else
cvFlip( frame, frame_copy, 0 );
detect_and_draw( frame_copy );
if( cvWaitKey(
10 ) >= 0 )
break;
}
cvReleaseImage( &frame_copy );
cvReleaseCapture( &capture
);
}
els
e//
没检测到视频文件或者摄像头
{
const char*
filename =
(cha
r*)
检测
.jpg
读图片
IplImage* image
= cvLoadImage( filename, 1 );
if( image )
-
-
-
-
-
-
-
-
-
上一篇:关于描写云的词语、句子、段落
下一篇:超声相关词汇中英文对照