python之OpenCv(四)---人脸识别
对特定图像进行识别,最关键的是要有识别对象的特征文件。OpenCV已经内置了人脸识别特征文件,我们只要使用OpenCV的CascadeClassifier类即可进行识别。
语法:
https://github.com/opencv/opencv.git 在这里可以下载特征文件,在data目录下
识别对象变量 = cv2.CascadeClassifier(特征文件)、、
识别对象
识别结果变量 = 识别对象变量.detectMultiScale(图片,参数1,参数2,。。。)
参数有:
1、scaleFactor: 其原理是系统会以不同的区块大小对图片进行扫描,在进行特征对比。此参数用户设置区块的改变倍数,如无特别需求,一般设置为1.1
2、minNeighbors 此为控制误检率参数,默认值为3
3、minSize 设置最小的识别区块
4、maxSize 设置最大的识别区块
5、flags 此参数设置检测模式,可取值如下:
cv2.CV_HAAR_SCALE_IMAGE 按比例检测
cv2.CV_HAAR_DO_CANNY_PRUNING 利用Canny 边缘检测器排除一些边缘很少或很多的图像区域
cv2.CV_HAAR_FIND_BIGGEST_OBJECT 只检测最大物体
cv2.CV_HAAR_DO_ROUGH_SEARCH 只做初步检测
face = faceCascade.detectMultiScale(image,scakeFactor=1.1,minSize=(10,10),minNeighbors=5,flags = cv2.CASCADE_SCALE_IMAGE)
detectMultiScale 方法可以识别多个面部,返回值是一个列表
for (x,y,w,h) in face:
x,y 表示面部区域的左上角x,y坐标;w,h表示面部区域的宽度和高度
import cv2
#基本绘图
# import numpy
#
cv2.namedWindow("Image") #创建窗口
#
img = cv2.imread('20180703200225.jpg') #读取图像 #人脸识别 #img.shape[0] 获取图片的高度 img.shape[1] 获取图片的宽度 faceCascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml') faces = faceCascade.detectMultiScale(img,scaleFactor = 1.1,minNeighbors = 5,minSize = (10,10),flags = cv2.CASCADE_SCALE_IMAGE) cv2.putText(img,"Find"+str(len(faces))+"faces",(10,img.shape[0]-5),cv2.FONT_HERSHEY_SIMPLEX,1,(255,232,133),2) for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(128,255,0),2)
print(x,y,w,h) #cv2.imshow('Image',img)
cv2.imwrite('test.jpg',img)
cv2.waitKey(0)
cv2.destroyAllWindow()
python之OpenCv(四)---人脸识别的更多相关文章
- python基于OpenCV的人脸识别系统
想获得所有的代码,请下载(来自我的CSDN): https://download.csdn.net/download/qq_40875849/11292912 主函数: from recognitio ...
- 使用OpenCV进行人脸识别
不断维护的地址:http://plzcoding.com/face-recognition-with-opencv/ 怎样使用OpenCV进行人脸识别 本文大部分来自OpenCV官网上的Face Re ...
- 基于 OpenCV 的人脸识别
基于 OpenCV 的人脸识别 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenC ...
- 10分钟手把手教你运用Python实现简单的人脸识别
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 前言:让我的电脑认识我 我的电脑只有认识我,才配称之为我的电脑! 今天,我们用Python实现高大上的人脸识别技术! Python里,简单的 ...
- PyQt5+Caffe+Opencv搭建人脸识别登录界面
PyQt5+Caffe+Opencv搭建人脸识别登录界面(转载) 最近开始学习Qt,结合之前学习过的caffe一起搭建了一个人脸识别登录系统的程序,新手可能有理解不到位的情况,还请大家多多指教. 我的 ...
- 转:基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴等)【模式识别中的翘楚】
文章来自于:http://blog.renren.com/share/246648717/8171467499 基于开源项目OpenCV的人脸识别Demo版整理(不仅可以识别人脸,还可以识别眼睛鼻子嘴 ...
- opencv+opencv_contrib 人脸识别和检测 python开发环境快速搭建(30分钟)图文教程
很多朋友为了学习python.ML(机器学习).DL(深度学习).opencv等花费了大量时间配置安装环境(一个朋友花了4天时间才配置好)各种搜索.下载.安装配置,出问题等. 市面上的配置资料很多,选 ...
- python中使用Opencv进行人脸识别
上一节讲到人脸检测,现在讲一下人脸识别.具体是通过程序采集图像并进行训练,并且基于这些训练的图像对人脸进行动态识别. 人脸识别前所需要的人脸库可以通过两种方式获得:1.自己从视频获取图像 2.从人 ...
- opencv实现人脸识别(四) 人脸识别模块
到这一步就是进行人脸识别了. 流程图: 代码: import cv2 def recognize(cam): recognizer = cv2.face.LBPHFaceRecognizer_crea ...
随机推荐
- ADOConnection断线重连
问题: ADOConnection断线重连问题描述: 使用ADOConnection连接oracle数据库,开始正常,当网络断开时数据库连接失败(此时查询ADOConnection.connected ...
- Windows系统XAMPP安装Moodle教程
一.安装工具下载: 系统环境: Operating System: Windows 10 Enterprise 64-bit (10.0, Build 17134) 集成软件: XAMPP Versi ...
- Xamarin移动开发的优点和缺点
在考虑iOS或Android应用程序开发时,我们大多数人会首先考虑Objective-C vs Swift和Java.作为本地技术堆栈,当涉及到iOS和Android应用程序开发时,它们自然是最常用的 ...
- 各种文件用JS转Base64之后的data类型
1.txt data:text/plain;base64, 2.doc data:application/msword;base64, 3.docx data:applicat ...
- Linux IO 模型
Linux 中主要有五种IO模式:阻塞IO, 非阻塞IO, IO 多路复用,信号驱动IO和异步IO; 如果从同步非同步,阻塞非阻塞角度来看,又可以分为:同步阻塞IO, 同步非阻塞IO,异步阻塞IO和异 ...
- 【English】20190326
Throughput吞吐量[ˈθruˌpʊt] data movement数据移动 [ˈdetə ˈmuvmənt] How to improve the Throughput for data ...
- 【Python 10】汇率兑换3.0(while循环)
1.案例描述 设计一个汇率换算程序,其功能是将美元换算成人民币,或者相反. 2.0增加功能:根据输入判断是人民币还是美元,进行相应的转换计算 3.0增加功能:程序可以一直运行,知道用户选择退出 2.案 ...
- Centos安装php php-fpm 以及 配置nginx
下载php源码包 http://www.php.net/downloads.php 安装php .tar.bz2 cd php- ./configure --prefix=/usr/local/php ...
- Iris jwt 使用
jwt分为三个部分: 1.header,用来存储算法和token类型等信息 2.payload, 一些简单的信息 3.签名,来验证token是否合法 iris-jwt 这是初始化jwt中间 ...
- zabbix问题-非常少的网络故障失败或罕见:Proxy超时的问题
解决方案 在zabbix_agentd.conf中添加这些. BufferSend = 10 BufferSize = 150 MaxLinesPerSecond = 100 Timeout = 29 ...