dlib python人脸检测 特征点定位

来源:互联网 发布:db2导入数据库命令 编辑:程序博客网 时间:2024/05/17 23:56

参考:
1、http://blog.csdn.net/hjimce/article/details/51307886
2、http://dlib.net/


1、python

人脸检测

# -*- coding: UTF-8 -*-import cv2import dlibimport numpy as np# 根据人脸框bbox,从一张完整图片裁剪出人脸def getface():    bgrImg = cv2.imread('nba.jpg')    print(bgrImg.shape)    rgbImg = cv2.cvtColor(bgrImg, cv2.COLOR_BGR2RGB)    detector = dlib.get_frontal_face_detector()    # img = io.imread('1.jpg')    faces = detector(rgbImg, 1)    if len(faces) > 0:        for face in faces:            # face = max(faces, key=lambda rect: rect.width() * rect.height())            [x1, x2, y1, y2] = [face.left(), face.right(), face.top(), face.bottom()]            cv2.rectangle(bgrImg,(x1,y1),(x2,y2),(0,255,0),2,cv2.LINE_AA)    cv2.imshow("dst",bgrImg)    cv2.waitKey(0)    cv2.destroyAllWindows()getface()

人脸特征点定位

先从网上下载预训练模型shape_predictor_68_face_landmarks.dat,点击这里找到并下载

# -*- coding: UTF-8 -*-import cv2import dlibimport matplotlib.pyplot as plt# 根据人脸框bbox,从一张完整图片裁剪出人脸,并保存问文件名cropimgname# 如果未检测到人脸,那么返回false,否则返回trueface_detector = dlib.get_frontal_face_detector()landmark_predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")def geteye_rect(imgpath):    bgrImg = cv2.imread(imgpath)    if bgrImg is None:        return False    rgbImg = cv2.cvtColor(bgrImg, cv2.COLOR_BGR2RGB)    facesrect = face_detector(rgbImg, 1)    if len(facesrect) <= 0:        return False    for k, d in enumerate(facesrect):        shape = landmark_predictor(rgbImg, d)        for i in range(68):            pt = shape.part(i)            plt.plot(pt.x, pt.y, 'ro')        plt.imshow(rgbImg)        plt.show()geteye_rect("nba.jpg")

2、c++

参考:http://blog.csdn.net/hjimce/article/details/51307886

阅读全文
0 0
原创粉丝点击