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)

相关推荐
li星野几秒前
双指针 & 贪心算法六题通关:从回文串到跳跃游戏(Python + C++)
python·游戏·贪心算法
WL_Aurora几秒前
Python 算法基础篇之元组与列表
python·算法
这张生成的图像能检测吗6 分钟前
(论文速读)基于改进 YOLOv8 的轻量化车辆检测与跟踪方法
yolo·计算机视觉·目标追踪
颜安青10 分钟前
【python】运算符号(后续不断补充)
开发语言·python
于先生吖11 分钟前
家政派单小程序源头厂家
python
于先生吖12 分钟前
口碑好的家政派单小程序
python
深度学习lover15 分钟前
<数据集>yolo 货车识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·货车识别
geovindu18 分钟前
Python: Condition Variable Pattern
开发语言·python·设计模式·条件变量模式
yuanpan20 分钟前
Python + Pillow 实战:开发一个图片批量格式转换工具
python·microsoft·pillow
YJlio23 分钟前
2023-09-25:ChatGPT 开始支持“看、听、说”,从纯文本正式迈向多模态交互
人工智能·python·科技·chatgpt·django·交互·pygame