CV:利用cv2+dlib库(人脸征检测器)实现人脸检测与人脸标记之《极限男人帮》和《NBA全明星球员》

设计思路​

输出结果

代码实现

import cv2import dlibimport numpy as npimport sysPREDICTOR_PATH = "E:\\pyOpencv\\shape_predictor_68_face_landmarks.dat"detector = dlib.get_frontal_face_detector()predictor = dlib.shape_predictor(PREDICTOR_PATH)class NoFaces(Exception):    pass    im = cv2.imread("E:\\pyOpencv\\3.jpg")rects = detector(im, 1)if len(rects) >= 1:    print("{} faces detected".format(len(rects)))if len(rects) == 0:    raise NoFacesfor i in range(len(rects)):    landmarks = np.matrix([[p.x, p.y] for p in predictor(im, rects[i]).parts()])    im = im.copy()    for idx, point in enumerate(landmarks):        pos = (point[0, 0], point[0, 1])        cv2.circle(im, pos, 1, (0, 255, 0))cv2.namedWindow("im", 2)cv2.imshow("im", im)cv2.imwrite('E:\\pyOpencv\\im.jpg',im)cv2.waitKey(0)

 

视频人脸实时标记

视频实时监测代码

import cv2import dlibcap = cv2.VideoCapture(0)hog_face_detector = dlib.get_frontal_face_detector()dlib_facelandmark = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")while True:    _, frame = cap.read()    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)    faces = hog_face_detector(gray)    for face in faces:        face_landmarks = dlib_facelandmark(gray, face)        for n in range(0, 68):            x = face_landmarks.part(n).x            y = face_landmarks.part(n).y            cv2.circle(frame, (x, y), 1, (0, 255, 255), 1)    cv2.imshow("Face Landmarks", frame)    key = cv2.waitKey(1)    if key == 27:        breakcap.release()cv2.destroyAllWindows()

模型下载

下载:https://www.lanzoui.com/idOTTiglfuf 密码:esy9

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值