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)

相关推荐
程序员杰哥20 分钟前
依赖于第三方接口时,如何进行测试?
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
java修仙传21 分钟前
从网页禅道到 AI 能调用的工具:我的禅道 MCP 实现思路分享
java·人工智能·python·ai应用·mcp开发
reasonsummer23 分钟前
【办公类-120-01】20260812闵行区幼儿园概况表的数据统计(户籍、五类性质、优抚子女)
前端·python
梦想的旅途241 分钟前
企业微信API实战:Python自动化消息推送
java·前端·python·自动化·企业微信
月光船幽幽1 小时前
昆仑流形多模态融合新架构
人工智能·python
爱敲代码的憨仔1 小时前
BM25全文检索
开发语言·python·全文检索
SamChan902 小时前
用Python+Requests批量翻译PDF:从脚本到调度
后端·python·microsoft·ai·pdf·机器翻译
草莓熊Lotso2 小时前
【LangChain】核心技术:嵌入模型与向量存储完全指南
服务器·网络·python·langchain
leisoo80979 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan202210 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost