OpenCV-Python 人脸检测

本文介绍了一种基于OpenCV的人脸检测方法,通过加载预训练的Haar级联分类器,实现对图像中人脸的准确识别与定位。文章详细展示了Python代码实现过程,包括图像读取、灰度转换、人脸检测及结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

path

中文文档: https://www.cnblogs.com/Undo-self-blog/p/8423851.html

'''
@File        :   index.py
@CreateTime  :   2019/03/27 11:36:12
@Author      :   William
@Version     :   1.0
@Desc        :   人脸检测
'''
import cv2

# 共11张脸
imagePath = 'path.jpg'  # 待识别的图像

# 获取训练好的人脸的参数数据,这里直接从GitHub上使用默认值
# 训练数据参考地址:
# https://github.com/opencv/opencv/tree/master/data/haarcascades
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml')
# 读取图片
img = cv2.imread(imagePath)
# 灰度转换的作用就是:转换成灰度的图片的计算强度得以降低。
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 探测人脸 根据训练的数据来对新图片进行识别的过程。
faces = face_cascade.detectMultiScale(
    gray,
    scaleFactor=1.15,
    minNeighbors=5,
    minSize=(5, 5),
    flags=cv2.CASCADE_SCALE_IMAGE
)
print('发现{0}个人脸!'.format(len(faces)))

for(x, y, w, h) in faces:
    # 画图
    # cv2.rectangle(img, (x, y), (x+w, y+w), (0, 255, 0), 2)
    cv2.circle(img, (int((x+x+w)/2), int((y+y+h)/2)), int(w/2), (0, 255, 0), 2)


def zh_ch(string):
    return string.encode("gbk").decode(errors="ignore")


# 编辑完的图像要么直接的被显示出来,要么就保存到物理的存储介质。
cv2.imshow(zh_ch('标题'), img)
# Image
cv2.waitKey(0)
cv2.destroyWindow('image')

效果如下:
微信图片_20190416104220

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值