人脸检测
来源:互联网 发布:淘宝嘉年华价格变更 编辑:程序博客网 时间:2024/05/19 00:42
//在输入的彩色图像img中检测人脸,将最终结果(一个)返回到CvRect结构中
CvRect OnFaceDetection(IplImage*img,CvHaarClassifierCascade*cascade)
{
CvMemStorage*storage=cvCreateMemStorage(0);
IplImage*gray=cvCreateImage(cvSize(img->width,img->height),8,1);
cvCvtColor(img,gray,CV_BGR2GRAY);
cvEqualizeHist(gray,gray); //灰度直方图均衡化
cvClearMemStorage(storage);
CvRectrMax; //真正的人脸区域
rMax.x=-1;
rMax.y=-1;
rMax.width=-1;
rMax.height=-1;
CvSeq*faces=cvHaarDetectObjects(gray,cascade,storage,1.1,2,0,cvSize(20,20));
for(inti=0;i<(faces?faces->total:0);i++) //得到所有的人脸区域
{
CvRect*rtemp=(CvRect*)cvGetSeqElem(faces,i);
if(rtemp->x>0.5*img->width) //自定义人脸区域滤波规则,示例为右侧最大
{
if(rtemp->width*rtemp->height>rMax.width*rMax.height)
{
rMax.x=rtemp->x;
rMax.y=rtemp->y;
rMax.width=rtemp->width;
rMax.height=rtemp->height;
}
}
}
cvReleaseImage(&gray);
cvReleaseMemStorage(&storage);
returnrMax;
}
使用示例:
const char*cascade_name="haarcascade_frontalface_alt.xml";
CvHaarClassifierCascade*cascade=(CvHaarClassifierCascade*)cvLoad(cascade_name,0,0,0);
CvRectrface=OnFaceDetection(srcRGB,cascade);
if (rface.x!=-1) { ...... }
- 人脸检测的harr检测函数
- 人脸检测or五官检测
- OpenCV:人脸检测和行人检测
- 目标检测之人脸检测
- 人脸识别--活体检测(眨眼检测)
- Adaboost 人脸检测
- 人脸检测技术
- 人脸检测
- 人脸检测
- 人脸器官检测
- opencv 检测人脸
- adaboost人脸检测
- 人脸检测
- HARR人脸检测
- opencv检测人脸
- 人脸检测
- 人脸检测 opencv
- javacv 人脸检测
- Ruby中Require、Load、Include和Extend的区别
- IOS Delegate传值
- 【SQL】MySQL的安装使用以及SQL语法简介
- C++数据结构--插入排序
- redis在.NET下的使用
- 人脸检测
- vim自动缩进
- HDU 2112
- wxPython摸索[01]——Python Win32程序的界面设计
- js
- PAT_1021: Deepest Root
- html跨域访问
- tesseract-ocr出错
- 搜索技巧