6.python-opencv人脸检测
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人脸检测相关推荐
- Python+opencv 人脸识别
python+opencv人脸检测+识别示例及原理解析 一.开发环境搭建 二.图片人脸检测 2.1 文件准备与编程 2.2 注意事项 三.视频人脸识别 3.1文件准备与编程 3.2 注意事项 四.人脸 ...
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- OpenCV与图像处理学习十七——OpenCV人脸检测(含代码)
OpenCV与图像处理学习十七--OpenCV人脸检测(含代码) 一.人脸识别概要 1.1 人脸检测 1.2 人脸对齐(Face Alignment) 1.3 人脸特征提取(Face Feature ...
- OpenCV-Python实战(21)——OpenCV人脸检测项目在Web端的部署
OpenCV-Python实战(21)--OpenCV人脸检测项目在Web端的部署 0. 前言 1. OpenCV 人脸检测项目在 Web 端的部署 1.1 解析请求并构建响应 1.2 构建请求进行测 ...
- python视频人脸检测_OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- Python+OpenCV人脸识别签到考勤系统(新手入门)
Python+OpenCV人脸识别签到考勤系统(新手入门) 前言 项目效果图 项目需要的环境 编译器 辅助开发QT-designer 项目配置 代码部分 核心代码 项目目录结构 后记 正式版改进 项目 ...
- python opencv人脸识别考勤系统的完整源码
这篇文章主要介绍了python opencv人脸识别考勤系统的完整源码,本文给大家介绍的非常详细,希望对大家的学习或工作具有一定的参考借鉴价值. 代码如下: import wx import wx.g ...
- 基于python opencv人脸识别的签到系统
基于python opencv人脸识别的签到系统 前言 先看下效果 实现的功能 开始准备 页面的构建 功能实现 代码部分 总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人 ...
- Python实现人脸检测(个人、多人、视频)
Python实现人脸检测(个人.多人.视频) 1.加载图片: 源程序代码如下: 运行结果如下: 2.图片灰度转换: 源程序代码如下: 运行结果如下: 3.修改图片尺寸(在此次人脸检测案例中未用到): ...
- keras系列︱人脸表情分类与识别:opencv人脸检测+Keras情绪分类(四)
人脸识别热门,表情识别更加.但是表情识别很难,因为人脸的微表情很多,本节介绍一种比较粗线条的表情分类与识别的办法. Keras系列: 1.keras系列︱Sequential与Model模型.kera ...
最新文章
- Windows操作系统启动介绍(二)
- windows常用进程
- 走到尽头的技术-MVC
- Numpy基础知识点汇总
- stm32时钟树_STM32中的时钟
- My interested stuff(2008-07-18)
- kerberos验证_SQL Server中的服务主体名称和Kerberos身份验证概述
- IOS UIView 属性clipsToBounds
- 【转】解决IE8无法加载webplayer流媒体播放器的方法
- TemplateDoesNotExist 异常
- 计算机软件系统测试报告模板,测试报告模板
- python空气质量等级判断_空气质量等级的判定
- linux大容量硬盘 克隆到小硬盘_试玩免费硬盘克隆软件 再生龙 分区备份及恢复篇...
- DEM: 诊断事件管理 (Diagnostic Event Manager)
- SAP系统常用配置参数设定
- 敏捷开发“松结对编程”系列之十一:L型代码结构(团队篇之一)
- HTTP/1.1、HTTP/2
- gorilla/mux类库解析
- 2019上海交大计算机考研群,2019年科班二战上海交大计算机专硕,调剂非全初复试经验教训分享!...
- SAPUI5是什么?Fiori告诉我们将来UI开发用哪种技术?