新建一个py文件,命名为facedetectionwithdlib.py。添加如下代码:
python
# -*- 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:
break
cap.release()
cv2.destroyAllWindows()