传参数为0代表使用一个摄像头,因为我们笔记本只有一个摄像头有,如果传参为1则是使用两个摄像头,我是笔记本,所以我传参0,当然你也可以在这里传入视频,你想检测这个视频里面的驾驶人员是否疲劳,而不是实时检测。
关于opencv视频处理入门我讲过:opencv视频处理入门你可以根据这个进行进一步的修改和理解。
4.1 模块导入
import cv2
from functools import wraps
from pygame import mixer
import time
模块下载不需要我教了吧?基础都不熟练,请看我基础专栏:python基础教程
4.2 定义一个计数眼睛眨眼的函数
def counter(func):
@wraps(func)
def tmp(*args, **kwargs):
tmp.count += 1
global lastsave
if time.time() - lastsave > 3:
这是以秒为单位,所以 5 分钟 = 300 秒
lastsave = time.time()
tmp.count = 0
return func(*args, **kwargs)
tmp.count = 0
return tmp
满足闭眼情况输出:
@counter
def closed():
print (“Eye Closed”)
同理闭眼我们也定义一个输出函数:
def openeye():
print( “Eye is Open”)
警报声也定义一个函数:
def sound():
mixer.init()
mixer.music.load(‘sound.mp3’)
mixer.music.play()