Python使用opencv,dlib、imutils实现简单的嘴巴特征标注,检测嘴巴的张合。
废话少说,相关代码如下
import cv2
import dlib
import imutils
import os
import time
import numpy as np
import math
from imutils import face_utils
#计算两个坐标的距离
def euclidian_distance(p1, p2):
diff_x = abs(p2[0]-p1[0])
diff_y = abs(p2[1]-p1[1])
return math.sqrt(diff_x*diff_x + diff_y*diff_y)
# 使用 Dlib 的正面人脸检测器 frontal_face_detector
detector = dlib.get_frontal_face_detector()
#脸部关键点预测器
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
path=r"C:/Users/一只会飞的猫/Desktop/test/test.mp4"
#cap = cv2.VideoCapture(path)#这是选择读取视频
cap = cv2.VideoCapture(0)#这是选择打开自己的摄像头
fps = cap.get(cv2.CAP_PROP_FPS) #获取摄像头或者视频帧率
print(fps)
#count = int(cap.get(7)) # 总帧数
#print("总帧数",count)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# print(width,height)
fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v') # codec
# cv2.VideoWriter( fil