opencv-Python---动态人脸捕捉

本章重点内容:

1、python写人脸识别

2、选择OpenCv框架

案例1

导入图片并打开显示

思路:1、导入库  2、加载图片  3、创建窗口  4、显示图片  5、暂停窗口  6、关闭窗口

 1 #1、导入库 
 2 import cv2
 3 # 2、加载图片
 4 img = cv2.imread("5.png")
 5 # 3、创建窗口
 6 cv2.namedWindow('windows_cv2')
 7 # 4、显示图片  
 8 cv2.imshow('photo',img)
 9 # 5、暂停窗口 
10 cv2.waitKey(0)
11 # 6、关闭窗口
12 cv2.destroyAllWindows()

案例2

在识别的图片上面添加人脸识别:重点注意:需要添加模型库

思路:1、导入库  2、加载图片  3、加载人脸模型  4、调整图片灰度  5、检查人脸

      6、标记人脸  7、创建窗口  8、显示图片  9、暂停窗口  10、关闭窗口

 1 """案例2、图片中人物脸部识别"""
 2 #1、导入库
 3 import cv2
 4 # 2、加载图片
 5 img = cv2.imread('1.jpg')
 6 # 3、加载人脸模型
 7 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
 8 # 4、调整图片灰度(人脸识别没必要识别颜色,灰度能提高性能)
 9 gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
10 # 5、检查人脸(scaleFactor=1.15,minNeighbors=5,flags = cv2.CASCADE_SCALE_IMAGE,minSize=(5,5))  这几项都可以选择默认)
11 faces = face_cascade.detectMultiScale(gray,
12                                       scaleFactor=1.15,
13                                       minNeighbors=5,
14                                       flags = cv2.CASCADE_SCALE_IMAGE,
15                                       minSize=(5,5))
16 #6、标记人脸
17 for (x,y,w,h) in faces:
18     #里面有4个参数1、写图片2、坐标原点3、识别大小4、颜色5、线宽
19     cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
20 
21 # 7、创建窗口
22 cv2.namedWindow('windows')
23 # 8、显示图片
24 cv2.imshow('picture',img)
25 # 9、暂停窗口 
26 cv2.waitKey(0)
27 # 10、关闭窗口
28 cv2.destroyAllWindows()

案例3

调用摄像头

思路:1、导入库  2、打开摄像头  3、获取摄像头实时画面  4、释放资源   10、关闭窗口

 1 """案例3、打开电脑摄像头实时画面"""
 2 #1、导入库
 3 import cv2
 4 # 2、打开摄像头
 5 capture = cv2.VideoCapture(0)
 6 # 3、获取摄像头实时画面
 7 cv2.namedWindow('xiong')
 8 while True:
 9     #读取摄像头的帧画面
10     ret,frame = capture.read()
11     #显示图片
12     print(ret)
13     cv2.imshow('picture',frame)
14     #暂停窗口
15     if cv2.waitKey(5) & 0xFF == ord('q'):
16         break
17 # 4、释放资源
18 capture.release()
19 # 5、关闭窗口
20 cv2.destroyAllWindows()

案例4

在识别的图片上面添加人脸识别:重点注意:需要添加模型库

思路:1、导入库  2、打开人脸模型  3、打开摄像头  4、创建窗口  5、获取摄像头实时画面  6、释放资源  7、关闭窗口

 1 """案例4、打开电脑摄像头实时捕捉人脸"""
 2 #1、导入库
 3 import cv2
 4 # 2、加载人脸模型
 5 # faces_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
 6 faces_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')
 7 # 3、打开摄像头
 8 capture = cv2.VideoCapture(0)
 9 # 4、创建窗口
10 cv2.namedWindow('xiong')
11 # 5、获取摄像头实时画面
12 while True:
13     #读取摄像头帧画面 ret打开成功为True ,frame是摄像头画面
14     ret,frame = capture.read()
15     #图片调整灰度
16     gray = cv2.cvtColor(frame,cv2.COLOR_RGB2GRAY)
17     #检测人脸
18     faces = faces_cascade.detectMultiScale(gray)
19     #标记人脸
20     for (x,y,w,h) in faces:
21         cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
22         #显示图片
23         cv2.imshow('photo',frame)
24         #暂停窗口
25         if cv2.waitKey(5) & 0xFF == ord('q'):
26             break
27 
28 # 6、释放资源
29 capture.release()
30 # 7、关闭窗口
31 cv2.destroyAllWindows()
原文地址:https://www.cnblogs.com/XJT2018/p/9897664.html