python 网络摄像头 检测行为_python,opencv:在网络摄像头上检测到对象的持续时间...

我能够跟踪我的网络摄像头返回的每个帧中的一个对象。我想记下物体第一次被检测到的时间,以及此后持续检测到的持续时间。网络摄像头将无限期打开,即直到用户输入关闭。在

由于用于检测对象的代码集位于while循环中,需要该循环从cv2.VideoCapture()读取下一帧,因此我无法想出一种高效的python方法来执行我想要的操作。在

现在我为每个帧附加一个带有元组(timestamp,flag)的列表。timestamp是python的time.time()中的值,flag是一个布尔值,用于指示是否检测到对象。然后,我汇总时间戳的所有值,其中flag为“Yes”。但这并不能完全满足我的需要。你能建议一个更合适的方法吗?在

*我希望opencv中有一个像cv2.detectionDuration()这样的泛型函数:p

--编辑--

以下是跟踪正面的代码:import cv2

import time

faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml')

capture = cv2.VideoCapture(0)

keyPressed = -1

faceFound = []

print 'press esc to quit'

while(keyPressed != 27):

ret, camImage = capture.read()

cv2.imshow('camImage', camImage)

try:

faceRegion = faceCascade.detectMultiScale(camImage)

timestamp = time.time()

flag = 1

faceFound.append((timestamp,flag))

except TypeError:

timestamp = time.time()

flag = 0

faceFound.append((timestamp,flag))

print 'check if front face is visible to camera'

pass

keyPressed = cv2.waitKey(1)

cv2.destroyAllWindows()

timeDelta = 0

for tup in faceFound:

if tup[1] == 1:

timeDelta += tup[0]

print timeDelta

另外,您能帮我获得一个更好的timeDelta格式,以便它可以显示为day:hour:min:sec:microsec。有更好的替代品吗时间。时间()满足我目前的需求?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值