利用opencv自带的分类器,我们可以很轻松的实现人脸检测,代码如下
import cv2
def face_detect(filename):
#创建一个级联分类器并加载官方XML文件
face_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')
img = cv2.imread(filename)
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#返回的是个矩形数组列表,可转换成元组后使用rectangle函数绘制矩形更便捷
faces = face_cascade.detectMultiScale(gray_img, 1.1, 3)
for rect in faces:
rect = tuple(rect)
img = cv2.rectangle(img, rect, (255, 0, 0), 2)
cv2.imshow('face', img)
cv2.waitKey(0)
if __name__ == '__main__':
face_detect('tiantuan.png')