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()

运行效果图 

Python实现人脸识别_第1张图片

识别图片上的人脸

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()

运行效果图 

Python实现人脸识别_第2张图片

Python实现人脸识别_第3张图片

视频中的人脸识别

#加载人脸模型库
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()

 运行效果图

Python实现人脸识别_第4张图片

问题记录

问题:报错(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

解决:参考:https://blog.csdn.net/jacke121/article/details/86213617

 

持续完善,待续...

你可能感兴趣的:(性能优化)