调用opencv的接口实现人脸检测(简单)

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),(255,0,0),2)
    
# 将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

posted @ 2019-06-09 13:10  you-wh  阅读(703)  评论(0编辑  收藏  举报
Fork me on GitHub