Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用dlib获得眼睛和嘴巴的长度_Python 3.x_Opencv_Dlib_Scikit Image - Fatal编程技术网

Python 3.x 如何使用dlib获得眼睛和嘴巴的长度

Python 3.x 如何使用dlib获得眼睛和嘴巴的长度,python-3.x,opencv,dlib,scikit-image,Python 3.x,Opencv,Dlib,Scikit Image,我正在做一个哈欠检测项目,我正在使用dlib和opencv检测视频中的人脸和地标 我想知道眼睛和嘴巴的长度 这就是我到现在为止所做的 import sys import os import dlib import glob from skimage import io import cv2 import time if len(sys.argv) != 3: print("") exit() predictor_path = sys.argv[1] faces_folder_

我正在做一个哈欠检测项目,我正在使用dlib和opencv检测视频中的人脸和地标

我想知道眼睛和嘴巴的长度

这就是我到现在为止所做的

import sys
import os
import dlib
import glob
from skimage import io
import cv2
import time

if len(sys.argv) != 3:
    print("")
    exit()

predictor_path = sys.argv[1]
faces_folder_path = sys.argv[2]

vidcap = cv2.VideoCapture('video.avi')

detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_path)
win = dlib.image_window()

while vidcap.isOpened():
    success, image = vidcap.read()
    if success:
        win.clear_overlay()
        win.set_image(image)

        # Ask the detector to find the bounding boxes of each face. The 1 in the
        # second argument indicates that we should upsample the image 1 time. This
        # will make everything bigger and allow us to detect more faces.
        dets = detector(image, 1)
        print("Number of faces detected: {}".format(len(dets)))
        for k, d in enumerate(dets):
            print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
            k, d.left(), d.top(), d.right(), d.bottom()))
            # Get the landmarks/parts for the face in box d.
            shape = predictor(image, d)
            print(shape)
            print("Part 0: {}, Part 1: {},Part 2: {} ...".format(shape.part(0),shape.part(1),shape.part(2)))
            # Draw the face landmarks on the screen.
            win.add_overlay(shape)
            win.add_overlay(dets)
        time.sleep(0.01)
cv2.destroyAllWindows()
vidcap.release()
请帮助我如何得到眼睛和嘴巴张开的长度

从这个数字

眼坐标文件

import distanceFormulaCalculator

def distanceRightEye(c):
    eR_36,eR_37,eR_38,eR_39,eR_40,eR_41 = 0,0,0,0,0,0
    eR_36 = c[35]
    eR_37 = c[36]
    eR_38 = c[37]
    eR_39 = c[38]
    eR_40 = c[39]
    eR_41 = c[40]
    x1 = distanceFormulaCalculator.distanceFormula(eR_37,eR_41)
    x2 = distanceFormulaCalculator.distanceFormula(eR_38,eR_40) 
    return ((x1+x2)/2)

def distanceLeftEye(c):
    eL_42,eL_43,eL_44,eL_45,eL_46,eL_47 = 0,0,0,0,0,0
    eL_42 = c[41]
    eL_43 = c[42]
    eL_44 = c[43]
    eL_45 = c[44]
    eL_46 = c[45]
    eL_47 = c[46]
    x1 = distanceFormulaCalculator.distanceFormula(eL_43,eL_47)
    x2 = distanceFormulaCalculator.distanceFormula(eL_44,eL_46) 
    return ((x1+x2)/2)



def eyePoints():
    return [36,37,38,39,40,41,42,43,44,45,46,47]
import distanceFormulaCalculator

def distanceBetweenMouth(c):
    m_60,m_61,m_62,m_63,m_64,m_65,m_66,m_67 = 0,0,0,0,0,0,0,0
    m_60 = c[59]
    m_61 = c[60]
    m_62 = c[61]
    m_63 = c[62]
    m_64 = c[63]
    m_65 = c[64]
    m_66 = c[65]
    m_67 = c[66]
    x1 = distanceFormulaCalculator.distanceFormula(m_61,m_67)
    x2 = distanceFormulaCalculator.distanceFormula(m_62,m_66)
    x3 = distanceFormulaCalculator.distanceFormula(m_63,m_65)   
    return ((x1+x2+x3)/3)



def mouthPoints():
    return [60,61,62,63,64,65,66,67]
嘴坐标文件

import distanceFormulaCalculator

def distanceRightEye(c):
    eR_36,eR_37,eR_38,eR_39,eR_40,eR_41 = 0,0,0,0,0,0
    eR_36 = c[35]
    eR_37 = c[36]
    eR_38 = c[37]
    eR_39 = c[38]
    eR_40 = c[39]
    eR_41 = c[40]
    x1 = distanceFormulaCalculator.distanceFormula(eR_37,eR_41)
    x2 = distanceFormulaCalculator.distanceFormula(eR_38,eR_40) 
    return ((x1+x2)/2)

def distanceLeftEye(c):
    eL_42,eL_43,eL_44,eL_45,eL_46,eL_47 = 0,0,0,0,0,0
    eL_42 = c[41]
    eL_43 = c[42]
    eL_44 = c[43]
    eL_45 = c[44]
    eL_46 = c[45]
    eL_47 = c[46]
    x1 = distanceFormulaCalculator.distanceFormula(eL_43,eL_47)
    x2 = distanceFormulaCalculator.distanceFormula(eL_44,eL_46) 
    return ((x1+x2)/2)



def eyePoints():
    return [36,37,38,39,40,41,42,43,44,45,46,47]
import distanceFormulaCalculator

def distanceBetweenMouth(c):
    m_60,m_61,m_62,m_63,m_64,m_65,m_66,m_67 = 0,0,0,0,0,0,0,0
    m_60 = c[59]
    m_61 = c[60]
    m_62 = c[61]
    m_63 = c[62]
    m_64 = c[63]
    m_65 = c[64]
    m_66 = c[65]
    m_67 = c[66]
    x1 = distanceFormulaCalculator.distanceFormula(m_61,m_67)
    x2 = distanceFormulaCalculator.distanceFormula(m_62,m_66)
    x3 = distanceFormulaCalculator.distanceFormula(m_63,m_65)   
    return ((x1+x2+x3)/3)



def mouthPoints():
    return [60,61,62,63,64,65,66,67]

为什么不测量形状和零件之间的距离?