【实例简介】
给出一张照片,输出包含几张人脸,识别照片中的人脸(嘴、眼睛)并用矩形框出
【实例截图】
【核心代码】
# 给出一张照片,输出包含几张人脸,识别照片中的人脸(嘴、眼睛)并用矩形框出
import cv2
filepath = "C:/Users/hp/Pictures/mmm.jpg"
img = cv2.imread(filepath) # 读取图片
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色
# OpenCV人脸识别分类器
classifier = cv2.CascadeClassifier( "D:\Program Fies\Python\Python36\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml" )
color = (3, 200, 99) # 定义绘制颜色
# 调用识别人脸
faceRects = classifier.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
if len(faceRects): # 大于0则检测到人脸
for faceRect in faceRects: # 单独框出每一张人脸
x, y, w, h = faceRect
# 框出人脸
cv2.rectangle(img, (x, y), (x h, y w), color, 2)
""" # 左眼
cv2.circle(img, (x w // 4, y h // 4 30), min(w // 8, h // 8), color)
#右眼
cv2.circle(img, (x 3 * w // 4, y h // 4 30), min(w // 8, h // 8), color)
#嘴巴
cv2.rectangle(img, (x 3 * w // 8, y 3 * h // 4), (x 5 * w // 8, y 7 * h // 8), color)
"""
cv2.imshow("photo-test", img) # 显示图像
print("发现{0}个人脸".format(len(faceRects)))
c = cv2.waitKey(10)
cv2.waitKey(0)
cv2.destroyAllWindows()