• Haar cascade+opencv检测算法


    Harr特征识别人脸

    Haar cascade + opencv步骤

    1. 读取包含人脸的图片
    2. 使用haar模型识别人脸
    3. 将识别的结果用矩形框画出来
    • 构造haar检测器 :cv2.CascadeClassifier('具体检测模型文件')

    1. # 构造Haar检测器
    2. # 级联分级机,cv2.CascadeClassifier():cv2的内置方法,创建一检测器
    3. # haarcascade_frontalface_default.xml:正脸检测模型
    4. face_detector = cv2.CascadeClassifier('./cascades/haarcascade_frontalface_default.xml')
    • 将图像转成灰度图像
    1. # 转成灰度图
    2. img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
    • 检测: face_detector.detectMultiScale(img_gray)方法进行检测
    1. # face_detector.detectMultiScale(img_gray)方法进行检测
    2. # 检测结果,人脸的位置,二维数组
    3. detections = face_detector.detectMultiScale(img_gray)
    • 输出结果
    1. # 打印结果
    2. detections
    3. # [ 284, 263, 113, 113]:[x,y,w,h],(x,y):左上角坐标,(w,h)检测到人脸的尺寸:从左上角向右和向下开始延申的宽度和高度

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

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

    DetectMultiScale()方法参数调试

    参数:

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

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

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

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

     

  • 相关阅读:
    基于 Rainbond 部署 DolphinScheduler 高可用集群
    浅谈 kafka
    在VScode中使用sftp传输本地文件到服务器端
    windows 重启redis的方法
    【闲聊杂谈】源码追踪Spring的JDK和CGLib动态代理
    淘宝天猫CTO若海:沉浸式的消费体验是下一步发力方向
    港联证券:股票浮筹比例的指标怎么用?
    什么是前端脚手架?脚手架原理?
    数据结构_链表
    asp.net core mvc 路由
  • 原文地址:https://blog.csdn.net/weixin_43227851/article/details/133688688