人脸识别简单例子
来源:互联网 发布:java 连接池大小设置 编辑:程序博客网 时间:2024/06/02 10:40
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
static CvHaarClassifierCascade *cascade;// 加载分类器
static CvMemStorage *storage=0;// 保存图像内存
void detect_and_draw(IplImage *image);// 识别人脸重绘图像
const char *cascade_name="haarcascade_frontalface_alt.xml";// 分类器文件名称
int main(int argc, char *argv[])
{
IplImage* img = 0;// 图像指针
// 载入图像
img=cvLoadImage("Lena.jpg");
cascade = (CvHaarClassifierCascade *)cvLoad(cascade_name,0,0,0); //加载人脸检测所用的分类器
if( !cascade )
{
fprintf( stderr, "ERROR: Could not load classifier cascade\n" );
return -1;
}
storage = cvCreateMemStorage(0); //动态存储结构,用来存储人脸在图像中的位置
// 创建窗口
cvNamedWindow("mainWin", 1);
detect_and_draw(img);
// wait for a key
cvWaitKey(0);
// release the image
cvReleaseImage(&img );
cvDestroyWindow("mainWin");
return 0;
}
void detect_and_draw( IplImage* img )
{
static CvScalar colors[] =
{
{{0,0,255}},
{{0,128,255}},
{{0,255,255}},
{{0,255,0}},
{{255,128,0}},
{{255,255,0}},
{{255,0,0}},
{{255,0,255}}
};
double scale = 1.3;
IplImage* gray = cvCreateImage( cvSize(img->width,img->height), 8, 1 );
IplImage* small_img = cvCreateImage( cvSize( cvRound (img->width/scale),
cvRound (img->height/scale)), 8, 1 );
cvCvtColor( img, gray, CV_BGR2GRAY );
cvResize( gray, small_img, CV_INTER_LINEAR );
cvEqualizeHist( small_img, small_img );
cvClearMemStorage( storage );
if( cascade )
{
/*函数cvHaarDetectObjects检测图像中的目标,由OpenCV提供。*/
CvSeq* faces = cvHaarDetectObjects( small_img, cascade, storage, 1.1, 2, 0 ,
cvSize(30, 30) );
for( int i = 0; i < (faces ? faces->total : 0); i++ )
{
CvRect* r = (CvRect*)cvGetSeqElem( faces, i );
CvPoint center;
int radius;
center.x = cvRound((r->x + r->width*0.5)*scale);
center.y = cvRound((r->y + r->height*0.5)*scale);
radius = cvRound((r->width + r->height)*0.25*scale);
cvCircle( img, center, radius, colors[i%8], 3, 8, 0 );
}
}
cvShowImage( "result", img );
cvReleaseImage( &gray );
cvReleaseImage( &small_img );
}
- 人脸识别简单例子
- 简单人脸识别
- 简单人脸识别
- 使用dlib人脸识别的例子
- OpenCV objdetect人脸识别例子校正
- 人工智能小例子-人脸识别
- 简单人脸识别-googleAPI
- Opencv+Qt 颜色识别简单例子
- 图像识别 python+opencv的简单人脸识别
- 图像识别 python+opencv的简单人脸识别
- 人脸与人眼识别 opencv自带例子
- 人脸识别+OPENCV+EHMM的一些例子i
- Face++-识别人脸性别年龄小例子
- 使用OpenCV进行人脸识别的例子
- iOS简单的人脸识别
- 人脸识别(简单代码)
- 人脸识别(简单代码)
- OpenCV学习:人脸识别 简单程序
- Linux中echo的用法
- linux学习笔记4--线程编程 undefined reference to 'pthread_create'问题
- 利息提高四个点, 即可消灭影子银行
- 学习笔记——体系结构_动态分支预测
- 【iOS开发】---- 强大的UI修改工具 UIAppearance
- 人脸识别简单例子
- Oracle11g使用exp导出空表 oracle11g 对空表导出不支持
- 中国经济的下一个增长周期靠什么?
- 九度1164 旋转矩阵
- Ubuntu: 安装wine
- Activity中的setDefaultKeyMode()
- Destoon公司主页模板风格添加方法
- 如何给linux添加新硬盘
- mount需知