1)程序代码:
# 1. 使用haarcascade_frontalface_default.xml分类器对静态图像进行人脸检测。
import cv2
import numpy as np # 构造级联分类器对象
face_cascade = cv2.CascadeClassifier(
'./data/haarcascades/haarcascade_frontalface_default.xml'
# './data/haarcascades/haarcascade_frontalcatface.xml' # cat
# './data/lbpcascades/lbpcascade_frontalcatface.xml' # cat
)
src = cv2.imread('./images/input.jpg') # 检测目标
gray = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
dst = src.copy()
for (x, y, w, h) in faces:
cv2.rectangle(dst, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imwrite(' result.jpg', dst)
# 水平组合
imghstack = np.hstack((src, dst))
cv2.imshow("input-result", imghstack)
cv2.waitKey(0)
cv2.destroyAllWindows()
2)代码分析: