6.python-opencv人脸检测

第一章 python-opencv-图片导入和显示
第二章 python-opencv图像简单处理
第三章 python-opencv图像mask掩膜处理
第四章 python-opencv图像马赛克
第五章 python-opencv人脸马赛克


文章目录

  • 6.python-opencv人脸检测
  • 前言
  • 一、完整代码
  • 二、部分代码说明
    • 加载人脸加测模型
    • 人脸检测
    • 绘制检测框
  • 结果展示

前言

本文主要介绍如何使用opencv加载级联器检测图像中的人脸,并将人脸用方框标注出来。
本文将代码进行详细的标注说明。


一、完整代码

import cv2
import numpy as npif __name__ == '__main__':img = cv2.imread('./tong.jpg')#加载人脸检测模型face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml')#检测出的人脸坐标 x,y,w,h# faces = face_detector.detectMultiScale(img)#调参增加检测精度faces = face_detector.detectMultiScale(img,scaleFactor=1.05,  #缩放每次检测范围,默认1.1minNeighbors=3)# print(faces)#绘制矩形检测框for x,y,w,h in faces:  # for循环可以进行数组遍历cv2.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2)  #在检测到的人脸区域绘制矩形框#绘制圆形检测框# for x,y,w,h in faces:#     cv2.circle(img,#                center=(x+w//2, y+h//2),#                radius=w//2,  #半径#                color=[0,255,0],#                thickness=2)cv2.imshow('face', img)cv2.waitKey(0)cv2.destroyAllWindows()

二、部分代码说明

加载人脸加测模型

人脸检测模型可以直接从opencv官方网站中下载(下载地址),下载后是一个xml文件,通过加载xml文件即可进行检测。

模型加载用到的函数为cv2.CascadeClassifier(),其中括号中直接填入你下载好的检测模型的路径。

face_detector = cv2.CascadeClassifier('./haarcascade_frontalface_alt.xml')

人脸检测

模型加载后便开始人脸检测,人脸检测用到的是detectMultiScale函数。

detectMultiScale函数可以检测出图片中所有的人脸,并将人脸用vector保存各个人脸的坐标、大小(用矩形表示)


detectMultiScale函数的定义为:

detectMultiScale(self, image, scaleFactor=None, minNeighbors=None, flags=None, minSize=None, maxSize=None)

各参数含义为:

image--待检测图片,一般为灰度图像加快检测速度;objects--被检测物体的矩形框向量组;scaleFactor--表示在前后两次相继的扫描中,搜索窗口的比例系数。默认为1.1即每次搜索窗口依次扩大10%;minNeighbors--表示构成检测目标的相邻矩形的最小个数(默认为3个)。如果组成检测目标的小矩形的个数和小于 min_neighbors - 1 都会被排除。如果min_neighbors 为 0, 则函数不做任何操作就返回所有的被检候选矩形框,这种设定值一般用在用户自定义对检测结果的组合程序上;flags--要么使用默认值,要么使用CV_HAAR_DO_CANNY_PRUNING,如果设置为CV_HAAR_DO_CANNY_PRUNING,那么函数将会使用Canny边缘检测来排除边缘过多或过少的区域,因此这些区域通常不会是人脸所在区域;minSize和maxSize用来限制得到的目标区域的范围。

检测代码:

faces = face_detector.detectMultiScale(img,scaleFactor=1.05,  #缩放每次检测范围,默认1.1minNeighbors=3)

绘制检测框

人脸测结果输出的是人脸区域相对于图像的左上角坐标(x,y)和宽度w、高度h,可以根据这些信息绘制标注框。

for x,y,w,h in faces:  # for循环可以进行数组遍历cv2.rectangle(img,pt1=(x,y),pt2=(x+w,y+h),color=[0,0,255],thickness=2)  #在检测到的人脸区域绘制矩形框

用for循环遍历所有检测到的人脸信息,然后从左上角(x,y)到右下角(x+w,y+h)绘制矩形框,颜色[0,0,255]表示红色,thickness=2未标注框线的粗细程度。


结果展示

6.python-opencv人脸检测相关推荐

  1. Python+opencv 人脸识别

    python+opencv人脸检测+识别示例及原理解析 一.开发环境搭建 二.图片人脸检测 2.1 文件准备与编程 2.2 注意事项 三.视频人脸识别 3.1文件准备与编程 3.2 注意事项 四.人脸 ...

  2. OpenCV + python 实现人脸检测(基于照片和视频进行检测)

    OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...

  3. OpenCV与图像处理学习十七——OpenCV人脸检测(含代码)

    OpenCV与图像处理学习十七--OpenCV人脸检测(含代码) 一.人脸识别概要 1.1 人脸检测 1.2 人脸对齐(Face Alignment) 1.3 人脸特征提取(Face Feature ...

  4. OpenCV-Python实战(21)——OpenCV人脸检测项目在Web端的部署

    OpenCV-Python实战(21)--OpenCV人脸检测项目在Web端的部署 0. 前言 1. OpenCV 人脸检测项目在 Web 端的部署 1.1 解析请求并构建响应 1.2 构建请求进行测 ...

  5. python视频人脸检测_OpenCV + python 实现人脸检测(基于照片和视频进行检测)

    OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...

  6. Python+OpenCV人脸识别签到考勤系统(新手入门)

    Python+OpenCV人脸识别签到考勤系统(新手入门) 前言 项目效果图 项目需要的环境 编译器 辅助开发QT-designer 项目配置 代码部分 核心代码 项目目录结构 后记 正式版改进 项目 ...

  7. python opencv人脸识别考勤系统的完整源码

    这篇文章主要介绍了python opencv人脸识别考勤系统的完整源码,本文给大家介绍的非常详细,希望对大家的学习或工作具有一定的参考借鉴价值. 代码如下: import wx import wx.g ...

  8. 基于python opencv人脸识别的签到系统

    基于python opencv人脸识别的签到系统 前言 先看下效果 实现的功能 开始准备 页面的构建 功能实现 代码部分 总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人 ...

  9. Python实现人脸检测(个人、多人、视频)

    Python实现人脸检测(个人.多人.视频) 1.加载图片: 源程序代码如下: 运行结果如下: 2.图片灰度转换: 源程序代码如下: 运行结果如下: 3.修改图片尺寸(在此次人脸检测案例中未用到): ...

  10. keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)

    人脸识别热门,表情识别更加.但是表情识别很难,因为人脸的微表情很多,本节介绍一种比较粗线条的表情分类与识别的办法. Keras系列: 1.keras系列︱Sequential与Model模型.kera ...

最新文章

  1. Windows操作系统启动介绍(二)
  2. windows常用进程
  3. 走到尽头的技术-MVC
  4. Numpy基础知识点汇总
  5. stm32时钟树_STM32中的时钟
  6. My interested stuff(2008-07-18)
  7. kerberos验证_SQL Server中的服务主体名称和Kerberos身份验证概述
  8. IOS UIView 属性clipsToBounds
  9. 【转】解决IE8无法加载webplayer流媒体播放器的方法
  10. TemplateDoesNotExist 异常
  11. 计算机软件系统测试报告模板,测试报告模板
  12. python空气质量等级判断_空气质量等级的判定
  13. linux大容量硬盘 克隆到小硬盘_试玩免费硬盘克隆软件 再生龙 分区备份及恢复篇...
  14. DEM: 诊断事件管理 (Diagnostic Event Manager)
  15. SAP系统常用配置参数设定
  16. 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)
  17. HTTP/1.1、HTTP/2
  18. gorilla/mux类库解析
  19. 2019上海交大计算机考研群,2019年科班二战上海交大计算机专硕,调剂非全初复试经验教训分享!...
  20. SAPUI5是什么?Fiori告诉我们将来UI开发用哪种技术?

热门文章

  1. 大学计算机基础章节测试参考答案,《大学计算机基础)》章节测试答案.docx
  2. 微信小程序UI组件的推荐以及使用
  3. CSS布局方式有哪些
  4. mp3怎么转换成m4r
  5. 艾妮记账本Web开发(开发版)
  6. 基于Yolov5的玻璃瓶盖缺陷检测
  7. fable樱桃php频道,【爵士乐利器】Fable Sounds Broadway Big Band v1.3 97.7G
  8. findIndex()的用法
  9. 2012年第8周移动游戏推荐
  10. 虚拟机linux系统的安装