新建一个py文件,命名为facedetectionwithdlib.py。添加如下代码:
【代码 facedetectionwithdlib.py】
# -*- coding: utf-8 -*-
'''
使用dlib实现人脸检测
'''import face_recognition
import cv2
import time# 超参数
detection_method = 'hog' # 参数值为hog/cnn。表示人脸检测使用hog提取特征还是使用cnn提取特征。# video_path = 'test.mp4'
video_path = ''# 初始化摄像头
if video_path:cap = cv2.VideoCapture(video_path)
else:cap = cv2.VideoCapture(0)cap.set(0,640) # 视频宽度
cap.set(1,480) # 视频高度
time.sleep(2)while True:# 拍100张图片就结束ret, img = cap.read()# 人脸检测不依赖色彩,所以先把人脸图像转成灰度图像gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) face_locations = face_recognition.face_locations(gray, number_of_times_to_upsample=1, model = detection_method)# 用矩形框框出人脸位置for (top, right, bottom, left) in face_locations:cv2.rectangle(img, (left, top), (right, bottom), (0, 0, 255), 2)cv2.rectangle(gray, (left, top), (right, bottom), (0, 0, 255), 2)cv2.imshow('original image', img)cv2.imshow('gray image', gray)# 按 'ESC' 键终止k = cv2.waitKey(100) & 0xff if k == 27:breakcap.release()
cv2.destroyAllWindows()