人脸识别详细代码
1. 导入必要的库
```python
import cv2
import numpy as np
```
2. 加载人脸检测器和人脸识别器:
```python
#加载人脸检测器 #可以使用opencv中的haar特征或者LBP特征来构造一个人脸检测器 #这里使用haar特征来实现 #加载haar特征分类器 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') #加载人脸识别模型 recognizer = cv2.face.LBPHFaceRecognizer_create() #加载之前保存的数据集 recognizer.read('trainer/trainer.yml') ```
3. 设置参数:
```python #字体 font = cv2.FONT_HERSHEY_SIMPLEX #将id映射成对应的名字 id=0 names = ['None', 'ZhangSan', 'LiSi'] ```
4、开始读取图片并进行处理:
```python img = cv2.imread('test/test1.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #在图片上进行人脸检测 faces=face_cascade .detectMultiScale(gray, scaleFactor=1 .3, minNeighbors=5) for (x,y,w,h) in faces: ##截取出当前帧中找到的所有面部 roi_gray=gray[y:y+h , x:x+w] roi_color=img[y:y+h , x:x+w] ##使用LBPHFaceRecognizer预测出当前帧中的面部id id,conf=recognizer .predict(roi _gray) ##将id映射为对应的名字 name=names[id] ##圈出当前帧中找到的所有面部并显示其名字 color=(255 , 0 , 0 ) stroke= 2 end _coordinateX = x + w end _coordinateY = y + h cv2 .rectangle(img , (x , y),(end _coordinateX , end _coordinateY),color , stroke ) cv2 .putText(img , name, (x+30 , y+30 ), font , 1 , color ) ##显示图片并保存在本地目录下 cv2 .imshow('frame' img) if cv 2 waitKey (100 ) & 0xff == ord ('q'): break cap .release () CV 2 destroyAllWindows () ```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!