一、代码逻辑
二、代码实现
import cv2
# 导入分类器
face_patterns = cv2.CascadeClassifier(r'd:/python/data/haarcascade_frontalface_alt.xml')
# 读取图片
sample_image = cv2.imread(r'd:/python/data/usa.jpg')
cv2.imshow('before', sample_image)
# 将图片转换为灰度图,提高检测效率
sample_image = cv2.cvtColor(sample_image, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_patterns.detectMultiScale(sample_image, scaleFactor=1.05, minNeighbors=5, minSize=(80, 80))
print('检测到', len(faces), '张脸')
# 在检测到的人脸周围画矩形框
for (x, y, w, h) in faces:
cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 显示检测后的图片
cv2.imshow('after', sample_image)
# 保存检测后的图片
cv2.imwrite('d:/python/data/facedetect.jpg', sample_image)
# 等待按键,然后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()