资源简介
基于LBP算法的人脸识别程序(python),建立相应的文件夹,修改代码路径即可使用,很基础的代码供人脸识别学习。
代码片段和文件信息
#coding=utf-8
import cv2
import numpy as np # 添加模块和矩阵模块
# 图片保存路径
save_face_path = ‘D:/picture/photo_saving/‘
save_gray_path = ‘D:/picture/gray_train_set/‘ # 保存照片的文件夹地址
face_cascade = cv2.CascadeClassifier(“D:/OpenCV/opencv/build/etc/haarcascades/haarcascade_frontalface_default.xml“)
cap = cv2.VideoCapture(0) # VideoCapture类用于处理摄像头/视频读取_写入操作。
# 0代表0号摄像头
# 打开摄像头,若打开本地视频,同opencv一样,只需将0换成(“×××.avi“)
sampleNum = 0
Id = raw_input(‘enter your id: ‘)
while(1): # 持续不断的get a frame
ret frame = cap.read() # show a frame 第一个参数ret 为True 或者False代表有没有读取到图片第二个参数frame表示截取到一帧的图片
# 镜像翻转
frame = cv2.flip(frame 1)
# 灰度转换,gray就是灰度图片
gray = cv2.cvtColor(frame cv2.COLOR_BGR2GRAY) # BGR to gray
# 对于BGR,blue在高位,green在中位,red在低位,正好与RGB相反
# 探测图片中的人脸
faces = face_cascade.detectMultiScale(gray 1.3 5) # 会得到一串list:size(人脸个数),[xyhw](人脸的位置)
print(“faces“ faces) # 输出每个检测到的脸的list
if not faces is (): # 如果faces不为空
for x y z w in faces: # 同时在faces这个数组中迭代4个参数xyzw。xy是矩阵左上点的坐标,z是矩阵的宽,w是矩阵的高
roiImg = frame[y:y+w x:x+z] # ROI,即感兴趣区域,用roiImg设置感兴趣区域的图像
# Python中ROI区域的设置是使用Numpy中的索引来实现的,参数为y的坐标区间和x的坐标区间,w和z为偏移量,保存在roiImg矩阵中
# 保存人脸图片
sampleNum = sampleNum + 1
cv2.imwrite(save_face_path+‘User.‘+str(Id) + ‘.‘ + str(sampleNum) +‘.jpg‘ roiImg)
# 保存灰度图片
roi_gray = cv2.cvtColor(roiImg cv2.COLOR_BGR2GRAY)
cv2.imwrite(save_gray_path + ‘User.‘+str(Id) + ‘.‘ + str(sampleNum) +‘.jpg‘ roi_gray)
# 将人脸用矩形框出来
cv2.rectangle(frame (x y) (x+z y+w) (0 255 0) 2) # (xy)为起始坐标(x+zy+w)为结束坐标,(02550)是画线对应的rgb颜色,2是画线的宽度
cv2.imshow(“capture“ frame) # 以窗口形式显示frame帧 ,窗口名为capture
if cv2.waitKey(1) & 0xFF == ord(chr(27)): # 画面延时1ms并和11111111做与运算,若等于关闭键,则break
break # waitKey用于设置显示图像的频率,每1ms刷新一次
# chr(27)为ASCⅡ为27的字符,即ESC,ord函数是将字符转化为ASCⅡ,由于直接输入ESC不是一个字符,因此需要这样转换一下
# 也可以按q关闭,则写成 if cv2.waitKey(1) & 0xFF == ord(‘q‘): 但这样就对大小写有局限性
#model = cv2.face.LBPHFaceRecognizer_create()
#model=cv2.face.EigenFaceRecognizer_create( )
#model.train(roiImg labels)
#model.save(“MyFacePCAModel.xml“)
cap.release() # 关闭视频流文件
cv2.destroyAllWindows() # 释放并销毁窗口
# 识别的时候,不需要再保存图片了,只需要匹配就行
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3308 2019-04-23 09:35 generate.py
文件 1514 2019-04-23 18:32 recognizer.py
文件 1085 2019-04-23 19:21 trainner.py
----------- --------- ---------- ----- ----
5907 3
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论