案例:人脸检测

利用OpenCV中自己已经训练好的检测器

1 检测流程

  • 1.读取图片,并转换为灰度图像

  • 2.实例化人脸和眼睛检测的分类器对象

    • # 实例化级联分类器
      face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
      # 加载分类器
      face_cas.load("haarcascade_frontalface_default.xml")
      
  • 3.进行人脸和眼睛的检测

    • faceRects = face_cas.detectMultiScale(gray,scaleFactor,minNeighbors,minSize=)
      

​ 参数:

  • ​ Gray:要进行检测的人脸图像

    • scaleFactor:前后两次扫描中,搜索窗口的比例系数
    • minneighbors:目标至少被检测到minNeighbors次才会被认为是目标
    • minsize和maxsize:目标的最小尺寸和最大尺寸
  • 4.将检测结果绘制出来

2.示例:

import cv2 as cv
import matplotlib.pyplot as plt
# 1 导入图片
img = cv.imread("../image/111.jpg")
gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)# 2 实例化OpenCV人类和眼睛识别的分类器
face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
face_cas.load("haarcascade_frontalface_default.xml")eyes_cas = cv.CascadeClassifier("haarcascade_eye.xml")
eyes_cas.load("haarcascade_eye.xml")
# 3 调用识别人脸
faceRects = face_cas.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32,32))
for faceRect in faceRects:x,y,w,h = faceRect# 框出人脸cv.rectangle(img,(x,y),(x+h,y+w),(0,255,0),3)# 4 在识别出的人脸中进行眼睛的检测rol_color = img[y:y+h,x:x+w]rol_gray = gray[y:y+h,x:x+w]eyes = eyes_cas.detectMultiScale(rol_gray)for (ex,ey,ew,eh) in eyes:cv.rectangle(rol_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
## 5 检测结果绘制
plt.figure(figsize=(8,6),dpi=100)
plt.imshow(img[:,:,::-1]),plt.title('检测结果')
plt.show()

在视频中的人脸检测如下:

import cv2 as cv
import matplotlib.pyplot as plt
# 1 读取视频
cap = cv.VideoCapture("../image/676.mp4")
# 2 在每一帧数据中进行人脸识别
while(cap.isOpened()):ret,frame = cap.read()if ret == True:gray = cv.cvtColor(frame,cv.COLOR_BGR2GRAY)# 3 实例化OpenCV人脸识别的分类器face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")face_cas.load("haarcascade_frontalface_default.xml")# 4 调用人脸识别faceRects = face_cas.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32,32))for faceRect in faceRects:x,y,w,h = faceRect# 框出人脸cv.rectangle(frame,(x,y),(x+h,y+w),(0,255,0),3)cv.imshow("frame",frame)if cv.waitKey(1) & 0xFF == ord('q'):break
# 5 释放资源
cap.release()
cv.destroyAllWindows()

3.总结

opencv中人脸识别的流程是:

1.读取图片,并转换成灰度图
2.实例化人脸和眼睛检测的分类器对象

# 实例化级联分类器
face_cas = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
# 加载分类器
face_cas.load("haarcascade_frontalface_default.xml")

3.进行人脸和眼睛的检测

rect = classifier.detectMultiScale(gray,scaleFactor,minNeighbors,minSize,maxsize)

4.绘制结果图像

opencv中的人脸检测案例相关推荐

  1. 调用摄像头使用face_recognition 或 opencv中haar人脸特征实时检测识别人脸、给人脸打马赛克/给人脸贴图

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) OpenCV:python调用摄像头同时使用OpenCV中自带 ...

  2. [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

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

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

  4. OpenCV实现视频人脸检测

    利用OpenCV实现视频人脸检测,包含眼部检测.首先,将人脸检测和眼部检测需要的模型文件haarcascade_eye.xml和haarcascade_frontalface_default.xml放 ...

  5. OpenCV vs Dlib 人脸检测比较分析

    点击我爱计算机视觉标星,更快获取CVML新技术 人脸检测是计算机视觉最典型的应用之一,早期OpenCV的logo就是Haar人脸检测的示意图. 很多人的第一个OpenCV学习目标就是跑通Haar级联人 ...

  6. python 人脸检测_借助摄像头在Python中实现人脸检测

    Python部落(www.freelycode.com)组织翻译, 禁止转载 本文作者是Shantnu Tiwari--曾多年在C/C++的魔爪中饱受折磨,直到他发现了Python--使用起来感觉如呼 ...

  7. opencv快速入门人脸检测与人脸识别

    让"它"认得你 --利用opencv快速入门人脸检测与人脸识别 opencv,顾名思义"开源,计算机视觉".OpenCV就是这样的一个特殊的框架,一群大牛然绕自 ...

  8. opencv 美白磨皮人脸检测转

    1. 简介 这学期的计算机视觉课,我们组的课程项目为"照片自动美化",其中我负责的模块为人脸检测与自动磨皮. 功能为:用户上传一张照片,自动检测并定位出照片中的人脸,将照片中所有的 ...

  9. android 人脸检测 facedec,智能访客系统中的人脸检测及方向判别算法.pdf

    智能访客系统中的人脸检测及方向判别算法,人脸识别算法,人脸检测算法,opencv人脸识别算法,人脸识别算法有哪些,人脸识别pca算法,人脸比对算法,android人脸识别算法,adaboost人脸检测 ...

最新文章

  1. 【C++】C/C++ 中的单例模式
  2. 使用WinSCP在WIndows与树莓派之间传递文件
  3. redis的两种持久化方式详解
  4. matlab入门操作
  5. python玩王者荣耀皮肤碎片怎么获得_教你用Python代码免费获取王者荣耀全英雄皮肤...
  6. 如何获取类(接口)的成员
  7. 理解String不可变
  8. SQLServer2008安装教程
  9. android计算器(按钮版)
  10. Python电子书下载
  11. gbk字库音序对照表
  12. “程序已停止工作”问题的解决方法
  13. 微信小游戏是个人尝试做游戏最好的选择
  14. <C++>一篇文章搞懂类和对象中常函数和常对象的实质以及避免空指针访问的小妙招
  15. JVM_01 内存结构(深入理解+图解)
  16. Python3雷霆战机2D+双人联机+源码+解压运行(总之啥都有)
  17. 基于xwiki部署企业内部知识管理平台
  18. MOOG D634-319C
  19. 别瞎惊叹常识而已--5个前向实操过程分析
  20. [HITCN]哈工大2020秋计算机网络复习笔记 (1)

热门文章

  1. 51单片机波形发生器产生各种波形的原理
  2. 多可文档管理系统的手机版
  3. react中文文档、英文文档及JavaScript相关文档及web前端相关资料
  4. linux电脑外放没声音,告诉你Ubuntu扬声器无声的解决方法及命令
  5. 熬了整整30天,搭建kafka服务器centos8
  6. ROS routeros mikrotik路由器CVE-2018-14847漏洞
  7. PNAS|助人为乐—助人行为能减轻自身身体疼痛
  8. java水仙花数(详解)
  9. CSDN文章点赞、收藏、评论后到底发生了什么?简要分析HTTP交互机制
  10. 心得体会标题大全_心得体会题目大全