许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  基于Dlib库的人脸68个特征点检测(完整代码与原理)

基于Dlib库的人脸68个特征点检测(完整代码与原理)

阅读数 6
点赞 0
article_banner

基于Dlib库的人脸68个特征点 检测

  1. 利用dlib.get_frontal_face_detector()获取人脸框
  2. 利用dlib.shape_predictor(‘shape_predictor_68_face_landmarks.dat’)获取人脸68个特征点

代码

import numpy as np
import cv2
import dlib


detector = dlib.get_frontal_face_detector()  #获取人脸分类器
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')#获取人脸检测器
# shape_predictor_68_face_landmarks.dat是进行人脸标定的模型,它是基于HOG特征的

# cv2读取图像
img = cv2.imread("C:/Users/myJupyter/pic/1.jpg")

# 取灰度
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

# 人脸数rects
rects = detector(img_gray, 0)
for i in range(len(rects)):
    landmarks = np.matrix([[p.x, p.y] for p in predictor(img,rects[i]).parts()])
    # 这个函数predictor(img, rect[i]).parts()寻找人脸的68个标定点
    # print(landmarks)#landmarks 是一个二维数组
    for idx, point in enumerate(landmarks):
        # 68点的坐标
        # print (point)#point 是一个二维数组
        pos = (point[0, 0], point[0, 1])
        print(idx,pos)

        # 利用cv2.circle给每个特征点画一个圈,共68个
        cv2.circle(img, pos, 3, color=(0, 255, 0),thickness=-1)
        # 利用cv2.putText输出1-68
        font = cv2.FONT_HERSHEY_SIMPLEX
        cv2.putText(img, str(idx+1), pos, font, 0.4, (0, 0, 255), 1,cv2.LINE_AA)
        # 图像,文字内容, 坐标 ,字体,大小,颜色,字体厚度

cv2.namedWindow("img", 2)
cv2.imshow("img", img)
cv2.waitKey(0)
  • 函数dlib.get_frontal_face_detector() 查看:https://blog.csdn.net/Galen_xia/article/details/102823362
  • dlib.shape_predictor(‘shape_predictor_68_face_landmarks.dat’) 查看:https://blog.csdn.net/weixin_44493841/article/details/93503934
  • cv2.circle(img, center, radius, color, thickness, lineType=8, shift=0)#img:原图,center:圆圈的中心坐标;radius:圆圈的半径;color:圆圈的颜色;thickness:圆形轮廓的粗细(如果为正),负厚度表示要绘制实心圆;lineType: 圆边界的类型;

        shift:中心坐标和半径值中的小数位数。

效果展示:

在这里插入图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空