目录
3.cv2AddChineseText(img, text, position, textColor, textSize)
这段代码是一个基于dlib和OpenCV的人脸表情识别系统的实现。下面是对代码的详细解释:
1.导入必要的库
import numpy as np
import dlib
import cv2
from sklearn.metrics.pairwise import euclidean_distances
from PIL import Image,ImageDraw, ImageFont
numpy
:用于数组和矩阵运算。dlib
:一个包含机器学习算法的现代C++工具包,用于图像处理、人脸识别等。cv2
:OpenCV的Python接口,用于计算机视觉任务。sklearn.metrics.pairwise
:用于计算两点之间的欧氏距离。PIL
(Python Imaging Library):用于图像处理和文本绘制。
2.定义函数
1.MAR(shape)
def MAR(shape):
A = euclidean_distances(np.array(shape[50]),np.array(shape[58]))
B=euclidean_distances(np.array(shape[51]),np.array(shape[57]))
C=euclidean_distances(np.array(shape[52]),np.array(shape[56]))
D=euclidean_distances(np.array(shape[48]),np.array(shape[54]))
return((A+B+C)/3)/D
通过计算嘴角点之间的欧氏距离与嘴角到下巴中心点的距离的比值来得到口角的张开度(Mouth Aspect Ratio)。
2.MJR(shape)
def MJR(shape):#计算嘴宽度、脸颊宽度的比值
M= euclidean_distances(np.array(shape[48]),np.array(shape[54]))
J= euc