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)

相关推荐
一点媛艺35 分钟前
Kotlin函数由易到难
开发语言·python·kotlin
程序小旭37 分钟前
机器视觉基础—双目相机
计算机视觉·双目相机
魔道不误砍柴功2 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
AI极客菌3 小时前
Controlnet作者新作IC-light V2:基于FLUX训练,支持处理风格化图像,细节远高于SD1.5。
人工智能·计算机视觉·ai作画·stable diffusion·aigc·flux·人工智能作画
阿_旭3 小时前
一文读懂| 自注意力与交叉注意力机制在计算机视觉中作用与基本原理
人工智能·深度学习·计算机视觉·cross-attention·self-attention
王哈哈^_^3 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
测开小菜鸟3 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
萧鼎4 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸4 小时前
【一些关于Python的信息和帮助】
开发语言·python