【项目】Python人脸识别(1),这份354页笔记的Python进阶知识+大厂高频面试题

本文介绍了使用Python进行人脸识别的项目,包括图像预处理、训练数据集的创建、识别算法的实现,并提供了一个简单的GUI界面。作者通过pyqt设计GUI,使用OpenCV进行人脸识别,同时分享了Python进阶知识和大厂面试常见问题。
摘要由CSDN通过智能技术生成

将某一目录下的图片转化为数组,获取每张图片中人脸部分的数据保存到事先创建好的列表中,同时获取每张图片的ID,同样保存在事先创建好的列表中,最后将训练后的数据保存。

3.人脸识别


cv2会把训练好的数据放在一个文件中,我们在识别的时候直接调用这个数据和摄像头上面的人脸进行对比。

上图为训练好的一个文件。

识别效果在上面大家也看到了!!!

4.GUI界面


这个我是通过pyqt来设计了一个简单的GUI界面,配置pyqt环境我在我之前的一篇博客介绍过了——pyqt的介绍

使用了两个简单的button来进行一个可视化。

项目代码

====

人脸采集


import numpy as np

import cv2

def b():

print(‘正在调用摄像头!’)

faceCascade = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)

cap = cv2.VideoCapture(0)

cap.set(3,640) # set Width

cap.set(4,480) # set Height

while True:

ret, img = cap.read()

#将彩色图转为灰度图

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

faces = faceCascade.detectMultiScale(

gray,

scaleFactor=1.2,

minNeighbors=5

,

minSize=(20, 20)

)

for (x,y,w,h) in faces:

cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)

roi_gray = gray[y:y+h, x:x+w]

roi_color = img[y:y+h, x:x+w]

cv2.imshow(‘video’,img)

k = cv2.waitKey(30) & 0xff

if k == ord(‘s’):

n = input(‘请输入编号:’)

cv2.imwrite(‘./data/jm/’+n+‘.jpg’,roi_gray)

if k == 27: # press ‘ESC’ to quit

break

cap.release()

cv2.destroyAllWindows()

b()

数据训练


import os

import cv2

import sys

from PIL import Image

import numpy as np

def getImageAndLabels(path):

facesSamples=[]

ids=[]

imag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值