<span style="font-size:18px;">// Face_ASM.cpp : 定义控制台应用程序的入口点。
////#include "stdafx.h"
#include <iostream>
#include <vector>
//#include "stdafx.h"#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/objdetect/objdetect.hpp"
#pragma comment(lib,"asmlibraryD.lib")#include "asmfitting.h"using namespace std;
using namespace cv;int main()
{Point2D32f pt;int circle_x, circle_y, i, j;//IplImage* img = cvLoadImage("D:6.jpg");Mat img = imread("D:6.jpg");IplImage* img1;img1 = &IplImage(img);//*****************人脸检测****************************************************************************CascadeClassifier face_cascade;  //识别人脸的功能if (!face_cascade.load("haarcascade_frontalface_alt.xml")){cout << "Cascadeclassifier load false!" << endl;return -1;}vector<Rect> face_vec; //保存人脸的个数,vector保存到容器中Mat pic_RGB, pic_GRAY;pic_RGB = img;cvtColor(pic_RGB, pic_GRAY, CV_RGB2GRAY);//进行灰度变换equalizeHist(pic_GRAY, pic_GRAY);//进行直方图均衡化face_cascade.detectMultiScale(pic_GRAY, face_vec, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(10, 10));  //检测数人脸if (!face_vec.size())cout << "检测不到人脸!" << endl;elsecout << "检测到 " << face_vec.size() << "张人脸!" << endl;for (i = 0; i<(int)face_vec.size(); i++){Point p1((int)face_vec[i].x, (int)face_vec[i].y);Point p2((int)(face_vec[i].x + face_vec[i].width), (int)(face_vec[i].y + face_vec[i].height*1.1));rectangle(img, p1, p2, Scalar(255, 0, 0), 1, 8, 0); }                                                                  //矩形框显示出人脸//imshow("facedetect_test",pic_RGB);//***************ASM特征点匹配*************************************************************************if (!face_vec.size()){cout << "没有检测到人脸,无法ASM特征点匹配" << endl;return -1;}//下面上是ASM模型对人脸中特征点的检测asm_shape shape, detshape;asmfitting fit_asm;if (fit_asm.Read("my68-1d.amf") == false){cout << "ASM特征点模版载入失败,退出!" << endl;return -1;}//模版位置初始化detshape.Resize(2);for (i = 0; i<(int)face_vec.size(); i++){detshape[0].x = (float)face_vec[i].x;//face_rect是cvRect型结构体的实体,cvRect结构体的成员为x,y,width,heightdetshape[0].y = (float)face_vec[i].y;detshape[1].x = (float)(face_vec[i].x + face_vec[i].width);detshape[1].y = (float)(face_vec[i].y + face_vec[i].height);InitShapeFromDetBox(shape, detshape, fit_asm.GetMappingDetShape(), fit_asm.GetMeanFaceWidth());//给人脸图像贴上ASM模版bool b = fit_asm.ASMSeqSearch(shape, img1, 0, true, 30);//对准人脸特征点//提取特征点坐标位置//  for(j=0;j<68;j++)//  {//pt = shape[j];//   circle_x=cvRound(pt.x);//   circle_y=cvRound(pt.y);//   cvCircle( img,cvPoint(circle_x,circle_y), 2, cvScalar(255,0,0),1, 8, 0 );//  }pt = shape[27];circle_x = cvRound(pt.x);circle_y = cvRound(pt.y);circle(img, cvPoint(circle_x, circle_y), 2, cvScalar(0, 255, 0), 1, 8, 0);pt = shape[29];circle_x = cvRound(pt.x);circle_y = cvRound(pt.y);circle(img, cvPoint(circle_x, circle_y), 2, cvScalar(0, 255, 0), 1, 8, 0);pt = shape[34];circle_x = cvRound(pt.x);circle_y = cvRound(pt.y);circle(img, cvPoint(circle_x, circle_y), 2, cvScalar(0, 255, 0), 1, 8, 0);pt = shape[32];circle_x = cvRound(pt.x);circle_y = cvRound(pt.y);circle(img, cvPoint(circle_x, circle_y), 2, cvScalar(0, 255, 0), 1, 8, 0);}imshow("facedetect_test", img);if (cvWaitKey(0) >= 0)return 0;return 0;
}
</span>
<span style="font-size:18px;">
</span>
<span style="font-size:18px;">
</span>

代码下载地址:

http://download.csdn.net/detail/qq_18343569/9085929

点击打开链接

ASM模型对人脸特征点的检测相关推荐

  1. 【基于人脸特征的心率检测研究】非接触式光电容积图和红外人脸视频瞬时心率估计

    Non-contact photoplethysmogram and instantaneous heart rate estimation from infrared face video 未经作者 ...

  2. mediapipe之人脸特征点468检测

    官网地址: https://github.com/google/mediapipehttps://github.com/google/mediapipe Mediapipe是google的一个开源项目 ...

  3. C++ OpenCV Contrib模块LBF人脸特征点检测

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为3322字,预计阅读9分钟 前言 <OpenCV源码Android端编译,用时三天,我编了个寂寞...>文中介绍了编 ...

  4. 第二篇:基于深度学习的人脸特征点检测 - 数据与方法(转载)

    https://yinguobing.com/facial-landmark-localization-by-deep-learning-data-and-algorithm/ 在上一篇博文中,我们了 ...

  5. 使用深度学习opencv 进行人脸年龄的实时检测

    2020-05-09 21:36:08 往期的文章我们分享了人脸的识别以及如何进行人脸年龄的检测,本期文章我们结合人脸识别的 模型进行人脸年龄的实时检测 人脸年龄的检测步骤 0.打开摄像头,获取图片数 ...

  6. PFLD:简单、快速、超高精度人脸特征点检测算法

    作者 | 周强(CV君) 来源 | 我爱计算机视觉(公众号id:aicvml) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourc ...

  7. ShapeNet:超实时人脸特征点检测与形状拟合开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源 ...

  8. python dlib人脸检测_使用Python+OpenCV+Dlib实现人脸检测与人脸特征关键点识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天,我们将学习如何检测图像中的人脸并提取面部特征,如眼睛.鼻子. ...

  9. MTCNN——基于级联模型的人脸关键点检测网络

    目录 1 致谢 2 前言 3 MTCNN--基于级联模型的人脸关键点检测网络 3.1 P-Net 3.1.1 训练数据是12x12,那么检测时也是要把所有的图像都放缩到12x12吗? 3.1.2 图像 ...

最新文章

  1. 建立Full Trust的Browser Application
  2. oracle mysql sql serve where in 语句的不同
  3. .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理
  4. 80岁COBOL码农:扶我起来,这个bug我会修!
  5. 2021年中国车轮电机市场趋势报告、技术动态创新及2027年市场预测
  6. php选择nginx还是apache,浅谈apache和nginx的rewrite的区别
  7. 被暴击了!22岁本科生开源的后台管理系统,太实用!
  8. R_ggplot2基础(一)
  9. openai_ros教程( ros gazebo 深度强化学习)
  10. LMC555定时器延时测试
  11. 使用wunderlist进行TODO管理
  12. 正规简单租房合同样板word电子版百度云下载房屋租赁
  13. 深入理解CAS-认证原理
  14. js分享到第三方平台
  15. 程序员数学(18)–平行四边形
  16. 微信开发网页授权获取用户信息
  17. 计算机管理员和用户名区别,Administrator记不住?教你自定义管理员账户名称
  18. 计算机考试如何使用电脑上的计算器
  19. 为什么你宁愿吃生活的苦,也不愿吃学习的苦
  20. SQL xin手错误鉴赏以及成长小结

热门文章

  1. git diff命令输出的含义
  2. WinCE开机Logo的实现(USB下载图片到nandflash)
  3. WIN7 64位系统搭建WINCE6.0系统遇到的问题
  4. S3C2443时钟管理
  5. Ubuntu使用mutt收、发、回复邮件(mutt+msmtp+fetchmail+procmail
  6. X86嵌入式主板在IOT网关产品的应用
  7. Linux下配置汇编编译器NASM和bochs模拟器
  8. 更新 Ubuntu 系统,避免报错「校验和不符」
  9. JS函数重载解决方案
  10. SQL语法练习 - 使用WITH AS提高性能简化嵌套SQL