opencv 人脸检测 python代码

 实现功能:给定一张图片,寻找图中的人脸,并用矩形框标记,按下Esc键,关闭所有窗口

# !/user/bin/env python
# -☆- coding:utf-8 -☆-
# author:lishan time:2020/6/30
import cv2
# 读取图片
# demo.jpg为图片名,自己修改
image = cv2.imread('demo.jpg')
# 显示图片
cv2.imshow('orignal', image)
# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 加载haar检测器
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 人脸检测
faces = faceCascade.detectMultiScale(
    # 待检测图像
    gray,
    # 缩放因子
    scaleFactor=1.15,
    # 同一人脸的最小检测标记个数
    minNeighbors=2,
    # 目标最小检测尺寸大小
    minSize=(5, 5)
)
# 打印人脸位置座标
# print(faces)
# 打印人脸个数
print('发现{0}个人脸!'.format(len(faces)))
# 标记人脸
for (x, y, w, h) in faces:
    # 矩形标注
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 0)
# 显示检测结果
cv2.imshow('detect', image)
while True:
    key = cv2.waitKey(1)
    # 按下Esc键退出
    if int(key) == 27:
        break
# 销毁所有窗口
cv2.destroyAllWindows()

 检测效果如下:

参考书籍:李立宗著. OpenCV轻松入门 面向Python[M]. 北京:电子工业出版社, 2019.05.

代码来源:在书中第23章第一节中的代码

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章