注意两点
1.图片
2.haarcascade_frontalface_alt.xml在opencv的安装路径
参考
http://blog.csdn.net/morewindows/article/details/8426318
#include <opencv2/opencv.hpp>
#include <cstdio>
#include <cstdlib>
#include <Windows.h>
using namespace std;
int main()
{
// 加载Haar特征检测分类器
// haarcascade_frontalface_alt.xml系OpenCV自带的分类器 下面是我机器上的文件路径
const char *pstrCascadeFileName = "E:/tools/opencv2410/opencv/sources/data/haarcascades/haarcascade_frontalface_alt.xml";
CvHaarClassifierCascade *pHaarCascade = NULL;
pHaarCascade = (CvHaarClassifierCascade*)cvLoad(pstrCascadeFileName);
// 载入图像
const char *pstrImageName = "13.jpg";
IplImage *pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);
IplImage *pGrayImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);
cvCvtColor(pSrcImage, pGrayImage, CV_BGR2GRAY);
// 人脸识别与标记
if (pHaarCascade != NULL)
{
CvScalar FaceCirclecolors[] =
{
{ { 0, 0, 255 } },
{ { 0, 128, 255 } },
{ { 0, 255, 255 } },
{ { 0, 255, 0 } },
{ { 255, 128, 0 } },
{ { 255, 255, 0 } },
{ { 255, 0, 0 } },
{ { 255, 0, 255 } }
};
CvMemStorage *pcvMStorage = cvCreateMemStorage(0);
cvClearMemStorage(pcvMStorage);
// 识别
DWORD dwTimeBegin, dwTimeEnd;
dwTimeBegin = GetTickCount();
CvSeq *pcvSeqFaces = cvHaarDetectObjects(pGrayImage, pHaarCascade, pcvMStorage);
dwTimeEnd = GetTickCount();
printf("人脸个数: %d 识别用时: %d ms\n", pcvSeqFaces->total, dwTimeEnd - dwTimeBegin);
// 标记
for (int i = 0; i <pcvSeqFaces->total; i++)
{
CvRect* r = (CvRect*)cvGetSeqElem(pcvSeqFaces, i);
CvPoint center;
int radius;
center.x = cvRound((r->x + r->width * 0.5));
center.y = cvRound((r->y + r->height * 0.5));
radius = cvRound((r->width + r->height) * 0.25);
cvCircle(pSrcImage, center, radius, FaceCirclecolors[i % 8], 2);
}
cvReleaseMemStorage(&pcvMStorage);
}
const char *pstrWindowsTitle = "人脸识别";
cvNamedWindow(pstrWindowsTitle, CV_WINDOW_AUTOSIZE);
cvShowImage(pstrWindowsTitle, pSrcImage);
cvWaitKey(0);
cvDestroyWindow(pstrWindowsTitle);
cvReleaseImage(&pSrcImage);
cvReleaseImage(&pGrayImage);
return 0;
}
注意linker input要引入所有 lib
opencv_core2410d.lib
opencv_imgproc2410d.lib
opencv_highgui2410d.lib
opencv_calib3d2410d.lib
opencv_contrib2410d.lib
opencv_features2d2410d.lib
opencv_flann2410d.lib
opencv_gpu2410d.lib
opencv_legacy2410d.lib
opencv_ml2410d.lib
opencv_nonfree2410d.lib
opencv_objdetect2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_videostab2410d.lib
分享到:
相关推荐
openCV人脸检测的C++代码
Android opencv人脸检测基于Android4.2+opencv2.4.10开发已经过小米手机测试
本工程是VS2013工程,调用了opencv的haar人脸检测函数,对视频中的人脸进行检测,并且将检测到的人脸一图片的形式保存在工程目录下。
Android OpenCv 人脸检测 包含正脸检测和侧脸检测,检测到人脸之后绘制矩形框框。下载即可使用,不需要安装opencv提供的多余的apk
android 通过opencv调用摄像头获取图像,识别检测人脸,对比两张人脸的匹配度。
使用OpenCV3实现的人脸检测
基于opencv的考勤管理桌面人脸刷卡端系统源码(百度AI人脸对比,OpenCV人脸检测),适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心下载使用~ 基于opencv的考勤管理桌面人脸刷卡端系统源码...
opencv 人脸检测 demo程序(opencv 手册 提供)
haarcascades-opencv人脸检测配置文件
OpenCV人脸检测源代码,可用于进行对人脸的识别和处理,经过调试和实验,结果满意
安卓opencv实现人脸检测,人脸识别,人脸对比,实现opencv对图像的翻转,镜像等操作。实现多人检测
使用的opencv里面的cvHaarDetectObjects函数完成的人脸识别,里面有完整的工程,在vs2010和opencv2.4.9下可以正常运行,里面包括我训练的xml文件和测试用的两个视频,如果你们你们换了其他视频效果不佳,需要自己...
采用vc++编写配合opencv读入摄像头,显示检测到的人脸实例。
OpenCV人脸检测的原理和实现_英文OpenCV_Object_Detection_Theory_and_Practice
人脸检测 应用opencv 实现人脸检测,打开一幅图片,进行检测; 保证你的VC 是6.0版本,并且配置了openCV1.0版。 MFC openCV vc++源程序
springboot +opencv 人脸识别
基于VC6.0+opencv1.0的人脸检测与人眼检测程序,检测效果良好。
java结合opencv人脸检测
OpenCV人脸检测识别分类器, OpenCV人脸检测识别分类器, OpenCV人脸检测识别分类器, OpenCV人脸检测识别分类器, OpenCV人脸检测识别分类器
iOS平台下面,使用OpenCV开源库,实现了一个人脸检测的功能。pod管理第三方库,所以下载加压后需要在终端执行,‘pod install’命令。