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)

相关推荐
xsc6996755 分钟前
从零搭建大模型与智能体平台 - 完整技术详解
python
无风听海1 小时前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
zhangfeng11332 小时前
计算机视觉vc 3D 希尔伯特曲线 基础介绍,人工智能
人工智能·计算机视觉·3d
CTA终结者2 小时前
期货量化主力换月程序怎么移仓:天勤 underlying_symbol 与任务切换
python·区块链
马士兵教育2 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
KaMeidebaby2 小时前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
天佑木枫3 小时前
15天Python入门系列 · 序
开发语言·python
happylifetree3 小时前
Python017-第二章15.数据容器-dict常用操作
python
装不满的克莱因瓶3 小时前
了解 LangChain 中的 LLM 与 ChatModel 的差异
人工智能·python·ai·langchain·llm·agent·chatmodel