简单运用Python OpenCV对图片进行人脸识别,

我们先看效果及代码:

import cv2img1 = cv2.imread('6.jpeg')
gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
faces = face_detector.detectMultiScale(gray, 1.1, 3,cv2.CASCADE_SCALE_IMAGE,(50,50),(100,100))
for (x, y, w, h) in faces:cv2.rectangle(img1, (x, y), (x + w, y + w), (0, 255, 0),2)cv2.imshow("img",img1)
cv2.waitKey(0) 

看着几行代码也是很简单,挨着介绍一下,方便于理解

import cv2  即导入opencv2模块,导入才能使用opencv,类似于C语言中的头文件。

img1 = cv2.imread('6.jpeg') 通过cv2模块把图片读取到img1中,需要指明图片的路径,因为图片与代码在同一目录,因此可以不写路径。

gray = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) 将图片修改为灰度图像输出到gray,使用灰度图像识别速度会快一些,如果不使用灰度图像也可以。

face_detector = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") 导入正面人脸检测的级联分类器,若自己有训练好的人脸识别文件也可以将此xml替换。替换成其他文件也可用时识别其他内容,不仅仅局限与人脸。

faces = face_detector.detectMultiScale(gray, 1.1, 3,cv2.CASCADE_SCALE_IMAGE,(50,50),(100,100)) 进行人脸识别;gray是传入的灰度图片,也可以用未进行图像转换的img1;1.1参数可以决定两个不同大小的窗口扫描之间有多大的跳跃,这个参数设置的大,则意味着计算会变快,但如果窗口错过了某个大小的人脸,则可能丢失物体,默认为1.1;默认值为3表明至少有3次重叠检测,我们才认为人脸确实存;cv2.CV_HAAR_SCALE_IMAGE   按比例检测;(50,50) 寻找人脸的最小区域;(100,100)寻找人脸的最大区域。

for (x, y, w, h) in faces:
    cv2.rectangle(img1, (x, y), (x + w, y + w), (0, 255, 0),2)  读取人脸识别的位置与响应的区域大小,并画出来。rectangle为画矩形;画在img1图片中;(x, y)是矩形起点坐标;(x + w, y + w)是矩形终点坐标;(0, 255, 0) 是RGB;2为线条粗细。

cv2.imshow("img",img1) 显示画好矩形的人脸识别图片。

cv2.waitKey(0) 等待按键,没有此行图片会一闪而过。

文件路径:需要的文件在同一目录中。

识别的关键函数与相关参数,可通过调节参数减小识别误差:

detectMultiScale(const Mat& image, double scaleFactor=1.1,int minNeighbors, int flag,minSize, maxSize)

1.image为输入的图像。

2.scaleFactor:  其原理是系统会以不同的区块大小对图片进行扫描,再进行特征对比。参数无特别需求,一般设置为1.1。

3.minNeighbors  此为控制误检率参数,默认值为3。

4.flag此参数设置检测模式,可取值如下:

cv2.CV_HAAR_SCALE_IMAGE   按比例检测

cv2.CV_HAAR_DO_CANNY_PRUNING  利用Canny 边缘检测器排除一些边缘很少或很多的图像区域

cv2.CV_HAAR_FIND_BIGGEST_OBJECT   只检测最大物体

cv2.CV_HAAR_DO_ROUGH_SEARCH  只做初步检测。

5.minSize  设置最小的识别区块。

6.maxSize  设置最大的识别区块,低于minSize和高于maxSize的话就不会检测出来。 

Python OpenCV 人脸识别相关推荐

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

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

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

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

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

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

  4. Python+opencv 人脸识别

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

  5. 基于python opencv人脸识别的员工考勤系统

    WorkAttendanceSystem 一个基于opencv人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,python课设期间. 源代码详细解释请关注微信公众号: ...

  6. Python+OpenCV人脸识别技术详解

    总在科幻电影里看到人脸识别,现在我们也可以编程来实现啦.哈哈~~ OpenCV是Intel®开源计算机视觉库.它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法. ...

  7. opencv python考勤_GitHub - liqq1228/python-opencv: 基于python opencv人脸识别的员工考勤系统...

    项目及作者说明 一个基于 Opencv.dlib 人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,Python 学习期间. 开源版及商业版说明 开源版 商业版 人脸录入 ...

  8. opencv人脸识别考勤 python_GitHub - lisanshui007/python-opencv: 基于python opencv人脸识别的员工考勤系统...

    项目及作者说明 一个基于 Opencv.dlib 人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,Python 学习期间. 开源版及商业版说明 开源版 商业版 人脸录入 ...

  9. python人脸考勤系统_GitHub - jykcc/python-opencv: 基于python opencv人脸识别的员工考勤系统...

    项目及作者说明 一个基于 Opencv.dlib 人脸识别的员工考勤系统,作者某双一流A类大学里的一流学生,写于2018/09/,Python 学习期间. 开源版及商业版说明 开源版 商业版 人脸录入 ...

  10. python opencv人脸识别登录_python使用opencv进行人脸识别

    环境 ubuntu 12.04 LTS python 2.7.3 opencv 2.3.1-7 安装依赖 sudo apt-get install libopencv-* sudo apt-get i ...

最新文章

  1. Grails精华:使用Groovy SQL
  2. django html直接调用的方法,如何在Django中使用AJAX从html正确调用函数/url?
  3. NOJ --138 找球号(二)
  4. FileZilla的下载与安装以及简单使用(Ubuntu和Windows之间互传文件需要下载——客户端)
  5. alientek ministm32液晶显示程序_佳显12864中文字库液晶专业生产液晶显示模块
  6. 前端学习(1342):mongoose验证规则拿到错误信息
  7. phpmyadmin登陆错误:The requested URL /phpmyadmin was not found on this serve
  8. Linux笔记-iptables规则原理和组成
  9. 4地形编辑插件_SketchUp高效建模插件
  10. 洛谷P1108 低价购买[DP | LIS方案数]
  11. 前端综合学习笔记---异步、ES6/7、Module、Promise同步 vs 异步
  12. 给定坐标(星期几、第几节)前端显示问题
  13. curl安装失败/区块链配置
  14. 服务器开启sxe进不了系统,sXe 服务端安装教程
  15. 投资与创业:程序猿如何改变世界
  16. 新手操作孕妇防辐射服暴利项目,也能日入500+
  17. WC2020 打铁记
  18. 基础js实现下雨效果(超简单)
  19. Google开放星空观测应用SkyMap源代码
  20. MATLAB 全景图切割及盒图显示

热门文章

  1. Android如何修改EditView中光标的颜色(华为手机EditView光标设置textCursorDrawable没反应)
  2. [NOIP2000P4]单词接龙
  3. Mysql 隔离级别配置修改
  4. 2021-04-06面试题2
  5. hdu5925 Coconuts
  6. stm32f1系列串行外围设备接口---SPI
  7. iMovie使用技巧
  8. ANDROID N 在SetupWizard后加入自己的页面
  9. Vue01-创建Vue实例以及各选项含义
  10. echarts漏斗图