Haar cascade+opencv检测算法

Harr特征识别人脸

Haar cascade + opencv步骤

  1. 读取包含人脸的图片
  2. 使用haar模型识别人脸
  3. 将识别的结果用矩形框画出来
  • 构造haar检测器 :cv2.CascadeClassifier('具体检测模型文件')
python 复制代码
# 构造Haar检测器 
# 级联分级机,cv2.CascadeClassifier():cv2的内置方法,创建一检测器
# haarcascade_frontalface_default.xml:正脸检测模型
face_detector = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')
  • 将图像转成灰度图像
python 复制代码
# 转成灰度图
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
  • 检测: face_detector.detectMultiScale(img_gray)方法进行检测
python 复制代码
# face_detector.detectMultiScale(img_gray)方法进行检测
# 检测结果,人脸的位置,二维数组
detections = face_detector.detectMultiScale(img_gray)
  • 输出结果
python 复制代码
# 打印结果
detections
# [ 284,  263,  113,  113]:[x,y,w,h],(x,y):左上角坐标,(w,h)检测到人脸的尺寸:从左上角向右和向下开始延申的宽度和高度

将识别的结果用矩形框画出来

  • 绘制图像
python 复制代码
# for循环迭代检测的元组,并画上矩形
for (x,y,w,h) in detections:
    # print((x,y,w,h))
    # 画矩形                          img:BGR
    cv2.rectangle(img,(x,y),(x+w,y+h),color=(0,255,0),thickness=10)
  • 显示绘制结果
python 复制代码
# 显示绘制结果
plt.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))

DetectMultiScale()方法参数调试

参数:

scaleFactor:【距离】调整图片尺寸,值越大,相当于镜头拉大

minNeighbors:【质量】人脸候选数量:候选值越大,则检测的越少

minSize:去掉的最小人脸尺寸大小(w,h)

maxSize:去掉的最大人脸尺寸大小(w,h)

相关推荐
想会飞的蒲公英3 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记4 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名4 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code5 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook5 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao7 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099678 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing8 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
赶紧写完去睡觉9 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda