opencv人脸识别2
来源:互联网 发布:广东英特讯软件科技 编辑:程序博客网 时间:2024/06/10 00:11
这几天太热了,希望可以下场降温雨!
上次的人脸识别,每次只能识别一个人脸,这次的可以识别多个人脸。
代码如何:
#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 = "haarcascade_frontalface_alt.xml";CvHaarClassifierCascade *pHaarCascade = NULL;pHaarCascade = (CvHaarClassifierCascade*)cvLoad(pstrCascadeFileName);// 载入图像 //cv::VideoCapture camera(0);//打开摄像头cv::VideoCapture camera("少女时代 - OH! - 日文版.avi");//载入视频//const char *pstrImageName = "style4.jpg";//IplImage *pSrcImage = cvLoadImage(pstrImageName, CV_LOAD_IMAGE_UNCHANGED);while (1){cv::Mat frame;camera >> frame;IplImage *pSrcImage;pSrcImage = &IplImage(frame);IplImage *pGrayImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);cvCvtColor(pSrcImage, pGrayImage, CV_BGR2GRAY);// 人脸识别与标记 if (pHaarCascade != NULL){CvScalar FaceCirclecolors[] ={(0, 255, 255),(0, 255, 0),(255, 128, 0),(255, 255, 0),(255, 0, 0),(255, 0, 255),(0, 0, 255),(0, 128, 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);if (cvWaitKey(30) >= 0) break;//延时30ms//cvWaitKey(0);}//cvDestroyWindow(pstrWindowsTitle);//cvReleaseImage(&pSrcImage);//cvReleaseImage(&pGrayImage);return 0;}结果截图:
1 0
- opencv人脸识别2
- OpenCV人脸识别
- opencv人脸识别
- openCV人脸识别
- Opencv 人脸识别
- opencv人脸识别
- Opencv 人脸识别
- opencv 人脸识别
- OpenCv人脸识别
- openCV人脸识别
- OpenCV人脸识别
- 人脸识别opencv
- openCV人脸识别
- opencv人脸识别
- opencv人脸识别总结2
- opencv 人脸识别 java版------2
- OpenCV的行人识别&人脸识别
- OpenCV的行人识别&人脸识别
- POJ 2234 Matches Game
- JavaScript 中apply()、call()和bind()方法的使用
- Mybatis中的#与$的区别
- java SPI 与cooma(dubbo 微容器改良品)--2 之Cooma SPI
- Opencv指针
- opencv人脸识别2
- lintcode minimum-adjustment-cost 最小调整代价
- Android 自定义属性
- Apache图片防盗链
- Cookie解析
- 图片旋转(扫描,等待效果)的几种方式
- STL学习
- c标签与select的结合应用
- 函数传id参数的问题