基于dlib和OpenCV的简单人脸表情识别

目录

1.导入必要的库

2.定义函数

1.MAR(shape)

2.MJR(shape)

 3.cv2AddChineseText(img, text, position, textColor, textSize)

3.主程序

1.初始化人脸检测器和关键点预测器

2.打开摄像头

3.循环读取摄像头帧

4.释放资源


这段代码是一个基于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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值