编写人脸检测程序

新建一个py文件,命名为facedetectionwithdlib.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()
相关推荐
睡醒了叭几秒前
coze-工作流-意图识别、批处理、变量聚合
人工智能·aigc
小学卷王3 分钟前
复试day25
算法
样例过了就是过了11 分钟前
LeetCode热题100 和为 K 的子数组
数据结构·算法·leetcode
二年级程序员12 分钟前
单链表算法思路详解(下)
c语言·数据结构·算法
HAPPY酷24 分钟前
C++ 成员指针(Pointer to Member)完全指南
java·c++·算法
Sunsets_Red29 分钟前
浅谈随机化与模拟退火
java·c语言·c++·python·算法·c#·信息学竞赛
Felven33 分钟前
A. Add and Divide
数据结构·算法
prince_zxill34 分钟前
AionUi:开源本地AI协作平台
人工智能
Frostnova丶37 分钟前
LeetCode 67. 二进制求和
算法·leetcode
上海锟联科技1 小时前
DAS 与 FBG 振动监测对比:工程应用中该如何选择?
数据结构·算法·分布式光纤传感