MC-Curry

不得不感慨,现在现成的东西太多了,直接拿来用就行了

dlib安装(指定版本安装,避免踩坑)

pip install dlib==19.7.0

dlib中训练好的文件http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

下载解压到项目中

代码

 1 import numpy as np
 2 import cv2 as cv
 3 import dlib
 4 
 5 detector = dlib.get_frontal_face_detector()
 6 predictor = dlib.shape_predictor(\'dlib/shape_predictor_68_face_landmarks.dat\')
 7 
 8 
 9 def Detect_face(camera_idx):
10     # camera_idx: 电脑自带摄像头或者usb摄像头
11     cv.namedWindow(\'detect\')
12     cap = cv.VideoCapture(camera_idx)
13 
14     while cap.isOpened():
15         cv.namedWindow(\'detect\', cv.WINDOW_AUTOSIZE)
16         ok, frame = cap.read()
17         # frame = cv.flip(frame, 1, dst=None)
18         if not ok:
19             break
20         gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
21         rects = detector(gray, 0)
22         for i in range(len(rects)):
23             landmarks = np.matrix([[p.x, p.y] for p in predictor(frame, rects[i]).parts()])
24             for idx, point in enumerate(landmarks):
25                 pos = (point[0, 0], point[0, 1])
26                 # print(idx, pos)
27                 cv.circle(frame, pos, 1, color=(0, 255, 0))
28                 font = cv.FONT_HERSHEY_SIMPLEX
29                 cv.putText(frame, str(idx + 1), pos, font, 0.4, (0, 255, 255), 1, cv.LINE_AA)
30         cv.imshow(\'detect\', frame)
31         c = cv.waitKey(10)
32         if c & 0xFF == ord(\'q\'):
33             break
34     cap.release()
35     cv.destroyAllWindows()
36 
37 
38 if __name__ == \'__main__\':
39     Detect_face(0)

效果图

 

真好使啊~~~

分类:

技术点:

相关文章:

  • 2021-09-24
  • 2021-04-13
  • 2021-04-09
  • 2021-12-13
  • 2021-11-04
猜你喜欢
  • 2021-09-24
  • 2021-09-24
  • 2021-12-03
  • 2021-12-01
  • 2021-12-01
  • 2021-09-14
  • 2021-05-12
相关资源
相似解决方案