使用python基于人脸识别并制作表情包 输出代码
时间: 2023-10-30 09:05:02 浏览: 46
以下是使用python基于人脸识别并制作表情包的代码:
```python
# 导入必要的库
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image
# 加载人脸识别器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 定义字体和字号
font_path = 'font.ttf'
font_size = 30
font = ImageFont.truetype(font_path, font_size)
# 读取图片
img = cv2.imread('input.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_cascade.detectMultiScale(gray, 1.3, 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]
# 制作表情包
pil_img = Image.fromarray(cv2.cvtColor(roi_color,cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(pil_img)
draw.text((10,10), "笑一个", font=font, fill=(255,255,255))
roi_color = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR)
# 替换原图中的人脸区域
img[y:y+h, x:x+w] = roi_color
# 保存输出图片
cv2.imwrite('output.jpg', img)
```
希望能对您有所帮助!