
OpenCV安装目录中的\data\
haarcascades目录下的haarcascade_frontalface_alt.xml与haarcascade_frontalface_alt2.xml都是用来检测人脸的Haar分类器,找到他,复制到自己的工程目录下,运行如下代码:
#include <opencv.hpp>using namespace cv
int main() {
int nRetCode = 0 //////////////
const char *pstrCascadeFileName = "haarcascades/haarcascade_frontalface_alt2.xml"
CvHaarClassifierCascade *pHaarCascade = NULL
pHaarCascade = (CvHaarClassifierCascade*)cvLoad(pstrCascadeFileName)
// 载入图像
const char *pstrImageName = "./image/1.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()
// 标记
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
}
基于MFC的人脸识别,用高版本的OpenCV好一些。2008、2010都可以兼容OpenCV2.4系列,做个人脸识别无压力。建议采用新版。OpenCV 1 可能功能稍微欠缺,不过应该也可以完成,而且学习资料稍多些。LZ斟酌下吧。
OpenCV的环境配置包括系统path变量和VS的设置。
以下说一下OpenCV 2.4.3 在 VS2010 下的配置。
假设\OpenCV-2.4.3\是你的OpenCV所在目录:
在系统环境变量的path目录下,加上OpenCV-2.4.3\build\x86\vc10\bin;
还要在VS的VC++目录里添加好include和lib,VS2010的设置与2008不同,
要打开任意一个项目,在“项目属性”里的配置属性,里边有个“VC++目录”,
这个设置是对于所有项目都可用的,设置一次就行了。
包含文件(include):
OpenCV-2.4.3\build\include
OpenCV-2.4.3\build\include\opencv
OpenCV-2.4.3\build\include\opencv2
库目录(library):
OpenCV-2.4.3\build\x86\vc10\lib
都设置好后重启VS,写一段简单程序测试一下,应该就可以了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)