import cv2
import matplotlib.pyplot as plt
%matplotlib inline # 提取预训练的人脸检测模型,提前下载好的模型
face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_alt.xml') # 加载彩色(通道顺序为BGR)图像
img = cv2.imread('images/9f510fb30f2442a70a9add3dd143ad4bd0130295.jpg') # 将BGR图像进行灰度处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 在图像中找出脸
faces = face_cascade.detectMultiScale(gray) # 打印图像中检测到的脸的个数
print('Number of faces detected:', len(faces)) print(type(faces)) # 获取每一个所检测到的脸的识别框
for (x,y,w,h) in faces:
# 在人脸图像中绘制出识别框
cv2.rectangle(img,(x,y),(x+w,y+h),(,,),) # 将BGR图像转变为RGB图像以打印
cv_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 展示含有识别框的图像
plt.imshow(cv_rgb)
plt.show()
OpenCV 中的 Haar feature-based cascade classifiers 来检测图像中的人脸。OpenCV 提供了很多预训练的人 脸检测模型,它们以XML文件保存在 github