一、安装opencv
pip install opencv-python
二、下载人脸分类器(.xml文件)
链接:https://pan.baidu.com/s/1STV7qt3Lv92kW_uz5d6IOw?pwd=ztwt 提取码:ztwt
三、实现
./mn.png图片修改成自己需要检测的人脸图片
import cv2
# 加载图片
image = cv2.imread('./mn.png')
# 加载人脸模型
face = cv2.CascadeClassifier('./opencv-4.x/data/haarcascades/haarcascade_frontalface_alt.xml')
# 调整图片灰度
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# 检查人脸
faces = face.detectMultiScale(gray)
# 标记人脸
for (x, y, w, h) in faces:
# 画矩形(图片,矩形位置大小,矩形颜色,线条粗细)
cv2.rectangle(image, (x, y, w, h), (0, 0, 255), 2)
# 显示图片
cv2.imshow('windowName', image)
# 暂停窗口
cv2.waitKey(0)
备注
# 显示图片
# =====================================
# # 1.导入库
# import cv2
# # 2.加载图片
# image = cv2.imread('./mn.png')
# # 3.创建窗口
# cv2.namedWindow('chaungkou')
# # 4.显示图片
# cv2.imshow('aaa', image)
# # 5.暂停窗口
# cv2.waitKey(0)
# # 6.关闭窗口
# cv2.destroyWindow('chaungkou')
# # 人脸检测操作
# # =====================================
# # 在识别的图片上添加人脸识别
# # 1.导入库
# import cv2
# # 2.加载图片
# image = cv2.imread('./mn.png')
# # 3.加载人脸模型
# face = cv2.CascadeClassifier('./opencv-4.x/data/haarcascades/haarcascade_frontalface_alt.xml')
# # 4.调整图片灰度
# gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)
# # 5.检查人脸
# faces = face.detectMultiScale(gray)
# # 6.标记人脸
# for (x, y, w, h) in faces:
# # 画矩形(图片,矩形位置大小,矩形颜色,线条粗细)
# cv2.rectangle(image, (x, y, w, h), (0, 0, 255), 2)
# # 8.显示图片
# cv2.imshow('windowName', image)
# # 9.暂停窗口
# cv2.waitKey(0)
# # 摄像头操作
# # =====================================
# import cv2
# # 打开摄像头
# capture = cv2.VideoCapture(0)
# # 获取摄像头实时画面
# cv2.namedWindow('she xiang tou')
# while True:
# # 读取摄像头的帧画面
# ret, frame = capture.read()
# # 显示摄像头的帧画面
# cv2.imshow('tupian', frame)
# if cv2.waitKey(5) & 0xff == ord('q'):
# break
#
# # 释放资源
# capture.release()
# # 关闭窗口
# cv2.destroyAllWindows()
# # 摄像头人脸识别
# # =====================================
# import cv2
# # 加载人脸模型
# face = cv2.CascadeClassifier('./opencv-4.x/data/haarcascades/haarcascade_frontalface_alt.xml')
# # 打开摄像头
# capture = cv2.VideoCapture(0)
# # 创建窗口
# cv2.namedWindow('she xiang tou')
# # 获取摄像头实时画面
# while True:
# # 读取摄像头的帧画面
# ret, frame = capture.read()
# if ret == False:
# print('未读取到摄像头画面')
# exit()
# # 设置图片灰度
# gary = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
# # 检测人脸
# faces = face.detectMultiScale(gary)
# # 标记人脸
# for (x, y, w, h) in faces:
# # 画矩形(图片,矩形位置大小,矩形颜色,线条粗细)
# cv2.rectangle(frame, (x, y, w, h), (0, 0, 255), 2)
# # 显示图片
# cv2.imshow('aaa', frame)
# # 暂停窗口
# if cv2.waitKey(5) & 0xff == ord('q'):
# break
# # 释放资源
# capture.release()
# # 关闭窗口
# cv2.destroyAllWindows()