Python实现人脸识别
案例分析
概述
Python在人脸识别方面功能很强大,程序语言简单高效,下面编程实现一下如何实现人脸识别。分别给出实现代码,作为学习和技术交流。
Python基础环境准备
参见:https://blog.csdn.net/yan_dk/article/details/89528463
案例实现
打开显示图片
import cv2 #opencv库
#读取图片
image=cv2.imread('imgs/face_exam1.jpg')
#显示图片窗口
cv2.imshow('faces',image)
#窗口暂停
cv2.waitKey(0)
#销毁窗口资源
cv2.destoryAllWindows()
运行效果图
识别图片上的人脸
import cv2 #opencv库
#读取图片
image=cv2.imread('imgs/face_exam0.jpg')
#加载人脸模型库
face_model=cv2.CascadeClassifier('plugins/opencv/haarcascade_frontalcatface.xml')
#图片进行灰度处理
gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
#人脸检测
faces = face_model.detectMultiScale(gray)
#标记人脸
for (x,y,w,h) in faces:
#1.原始图片;2坐标点;3.矩形宽高 4.颜色值(RGB);5.线框
cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
#显示图片窗口
cv2.imshow('faces',image)
#窗口暂停
cv2.waitKey(0)
#销毁窗口
cv2.destroyAllWindows()
运行效果图
视频中的人脸识别
#加载人脸模型库
face_model=cv2.CascadeClassifier('plugins/opencv/facemodel.xml')
#打开摄像头
capcure=cv2.VideoCapture(0)
#获取摄像头实时画面
while True:
# 读取摄像头当前这一帧的画面 ret:True fase image:当前这一帧画面
ret,image = capcure.read()
# 图片灰度处理
gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
# 检查人脸
faces=face_model.detectMultiScale(gray,1.1,3,0,(20.20))
#标记人脸
for (x,y,w,h) in faces:
#矩形标记
cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
#显示图片
cv2.imshow("faces in video",image)
#暂停窗口
if cv2.waitKey(5) & 0xFF ==ord('q'):
break
#释放资源
capcure.release()
#销毁窗口
cv2.destroyAllWindows()
运行效果图
问题记录
问题:报错(-215:Assertion failed) !_src.empty() in function ‘cv::cvtColor’
解决:参考:https://blog.csdn.net/jacke121/article/details/86213617
持续完善,待续…
还没有评论,来说两句吧...