教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 行业范文 >

人脸识别C++源代码

来源:网络收集 时间:2026-09-17
导读: 人脸识别C++源代码 基于隐马尔可夫模型的人脸识别C/C++源代码 中国视觉网网友 徐慧 提供 将生物特征识别应用于人脸,实际上是包含两个方面:第一,从图像或视频帧中检测人脸,即所谓的“人脸检测”(face detection);第二,对检测到的人脸进行识别,判断这

人脸识别C++源代码

基于隐马尔可夫模型的人脸识别C/C++源代码

中国视觉网网友 徐慧 提供

将生物特征识别应用于人脸,实际上是包含两个方面:第一,从图像或视频帧中检测人脸,即所谓的“人脸检测”(face detection);第二,对检测到的人脸进行识别,判断这张脸是谁,即“人脸识别”(face recognition)。就实际应用而言,采用人脸做生物特征识别,其识别率、可靠性都无法与指纹、虹膜识别相提并论,但失为模式识别中的一个典型应用,至少可以起到抛砖引玉的作用。

下面的源代码采用隐马尔可夫模型(HMM)做人脸识别,它是OPENCV 3.1 版本的一个应用示例程序,不再包含在 4.0 版本中。因此如果想编译源代码,则需要安装 OPENCV 3.1版本。该版本可以从SOURCEFORG上下载。关于程序使用以及算法说明,参考下面的网页(英文):

以及论文:

下载地址:

(转自阿须数码)

稿件B: 人脸检测的C/C++源代码

人脸检测的C/C++源代码,曾发表于 OPENCV 的 MAILING LIST,主要是对OPENCV 3.1 版本发布的代码做了一些速度上的优化,并且解决了内存泄漏的问题。这个程序所使用的 Paul Viola 提出(该论文“Rapid Object Detection using a Boosted Cascade of Simple Features”发表在 CVPR'01)的 Ada Boosted Cascade 算法可以说是目前最好最快的目标检测算法。

关于OPENCV的介绍,参考:

关于该算法的详细介绍,也可参考:

人脸识别C++源代码

以及:

运行文件下载:

该程序可以对静止图像以及视频序列进行 face tracking。对视频序列,请先插入USB接口的摄像头。

====

在OPENCV 3.1 版本,VC6.0下编译通过

====

===

#ifdef _CH_

#define WIN32

#error "The file needs cvaux, which is not wrapped yet. Sorry"

#endif

#ifndef _EiC

#include "cv.h"

#include "cvaux.h"

#include "highgui.h"

#endif

#ifdef _EiC

#define WIN32

#endif

#define ORIG_WIN_SIZE 24

static CvMemStorage* storage = 0;

static CvHidHaarClassifierCascade* hid_cascade = 0;

#define WINNAME "Result"

void detect_and_draw( IplImage* image, IplImage* TempImage );

int main( int argc, char** argv )

人脸识别C++源代码

CvCapture* capture = 0;

CvHaarClassifierCascade* cascade =

cvLoadHaarClassifierCascade( "",

cvSize( ORIG_WIN_SIZE, ORIG_WIN_SIZE ));

hid_cascade = cvCreateHidHaarClassifierCascade( cascade, 0, 0, 0, 1 ); cvReleaseHaarClassifierCascade( &cascade );

cvNamedWindow( WINNAME, 1 );

storage = cvCreateMemStorage(0);

if( argc == 1 || (argc == 2 && strlen(argv[1]) == 1 && isdigit(argv[1][0]))) capture = cvCaptureFromCAM( argc == 2 ? argv[1][0] - '0' : 0 );

else if( argc == 2 )

capture = cvCaptureFromAVI( argv[1] );

if( capture )

{

IplImage *frame, *temp;

cvGrabFrame( capture );

frame = cvRetrieveFrame( capture );

temp = cvCreateImage( cvSize(frame->width/2,frame->height/2), 8, 3 );

for(;;)

{

if( !cvGrabFrame( capture ))

break;

frame = cvRetrieveFrame( capture );

if( !frame )

break;

detect_and_draw( frame, temp );

if( cvWaitKey( 10 ) >= 0 )

{

//cvReleaseImage( &frame );

//cvReleaseImage( &temp );

cvReleaseCapture( &capture );

cvDestroyWindow(WINNAME);

return 0;

}

}

人脸识别C++源代码

else

{

char* filename = argc == 2 ? argv[1] : (char*)"lena.jpg";

IplImage* image = cvLoadImage( filename, 1 );

IplImage* temp = cvCreateImage( cvSize(image->width/2,image->height/2), 8, 3 );

if( image )

{

cvFlip( image, image, 0 );

image->origin = IPL_ORIGIN_BL;

detect_and_draw( image, temp );

cvWaitKey(0);

cvReleaseImage( &image );

cvReleaseImage( &temp );

}

cvDestroyWindow(WINNAME);

return 0;

}

return 0;

}

void detect_and_draw( IplImage* img, IplImage* temp )

{

int scale = 2;

CvPoint pt1, pt2;

int i;

cvPyrDown( img, temp, CV_GAUSSIAN_5x5 );

#ifdef WIN32

cvFlip( temp, temp, 0 );

#endif

cvClearMemStorage( storage );

if( hid_cascade )

{

CvSeq* faces = cvHaarDetectObjects( temp, hid_cascade, storage,

1.2, 2, CV_HAAR_DO_CANNY_PRUNING );

for( i = 0; i < (faces ? faces->total : 0); i++ )

{

CvRect* r = (CvRect*)cvGetSeqElem( faces, i, 0 );

pt1.x = r->x*scale;

pt2.x = (r->x+r->width)*scale;

#ifdef WIN32

人脸识别C++源代码

pt1.y = img->height - r->y*scale;

pt2.y = img->height - (r->y+r->height)*scale; #else

pt1.y = r->y*scale;

pt2.y = (r->y+r->height)*scale;

#endif

cvRectangle( img, pt1, pt2, CV_RGB(255,255,0), 3 ); }

}

cvShowImage(WINNAME, img );

//cvReleaseImage( &temp );

(转自阿须数码)

}

#ifdef _EiC

main(1,"facedetect.c");

#endif

…… 此处隐藏:1529字,全部文档内容请下载后查看。喜欢就下载吧 ……
人脸识别C++源代码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/1985987.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)