毫秒级opencv的人脸特征点的检测
2017-12-27 15:03
323 查看
这里用到了大名鼎鼎于仕琪老师的开源库,下面附上于老师的项目下载链接
https://github.com/ShiqiYu/libfacedetection
然后就是环境的配置,具体见链接
http://blog.csdn.net/mono_1032290547/article/details/78912548
毫秒级,速度比借助dlib快非常多
效果图
https://github.com/ShiqiYu/libfacedetection
然后就是环境的配置,具体见链接
http://blog.csdn.net/mono_1032290547/article/details/78912548
#include <opencv.hpp> #include <facedetect-dll.h> using namespace cv; using namespace std; //定义缓冲区大小。不要改变尺寸! #define DETECT_BUFFER_SIZE 0x20000 int main() { int * pResults = NULL; //在检测函数中使用了pBuffer。 //如果你调用多个线程中的函数,请为每个线程创建一个缓冲区! unsigned char * pBuffer = (unsigned char *)malloc(DETECT_BUFFER_SIZE); if (!pBuffer) { fprintf(stderr, "Can not alloc buffer.\n"); return -1; } Mat src = imread("keliamoniz1.jpg"); Mat gray; cvtColor(src, gray, CV_BGR2GRAY); int doLandmark = 1;// do landmark detection pResults = facedetect_multiview_reinforce(pBuffer, (unsigned char*)(gray.ptr(0)), gray.cols, gray.rows, (int)gray.step, 1.2f, 2, 48, 0, doLandmark); //打印检测结果 for (int i = 0; i < (pResults ? *pResults : 0); i++) { short * p = ((short*)(pResults + 1)) + 142 * i; rectangle(src, Rect(p[0], p[1], p[2], p[3]), Scalar(0, 255, 0), 2); if (doLandmark) { for (int j = 0; j < 68; j++) circle(src, Point((int)p[6 + 2 * j], (int)p[6 + 2 * j + 1]), 1, Scalar(0, 0, 255),2); } } imshow("Show", src); waitKey(0); }
毫秒级,速度比借助dlib快非常多
效果图
相关文章推荐
- Python-OpenCV人脸检测---直接调用训练好的Harr特征
- opencv中haar特征检测人脸(适合小白)
- OpenCV中Haar-like特征人脸检测函数介绍
- 结合OpenCV摄像头使用Dlib库进行人脸检测及标注特征点和提取人脸特征-Python
- OpenCV学习笔记:基于Haar特征的人脸检测
- 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
- OpenCV中基于Haar特征和级联分类器的人脸检测
- 利用OpenCV的级联分类器类CascadeClassifier和Haar特征实现人脸区域的检测
- OpenCV教程(41) 人脸特征检测
- VC6.0,OpenCV实现人脸特征检测
- OpenCV中基于Haar特征和级联分类器的人脸检测
- opencv人脸检测(haar特征+AdaBoos分类器)(一)
- 人脸检测原理及示例(OpenCV+Python) haar特征 adaboost
- 【人脸检测】OpenCV中的Haar+Adaboost级联分类器分解(一):Haar特征介绍
- Opencv人脸检测特征文件含义解释
- opencv 利用类haar小波特征的人脸、人眼等特征检测(带代码)
- OpenCV+Dlib实现人脸68个特征点检测
- opencv结合dlib进行人脸特征点的检测
- opencv3/c++ Haar特征与Viola-Joines人脸检测
- opencv人脸检测(haar特征+AdaBoos分类器)(二)