Python 我想创建一个软件,它可以使用simpleCV和openCV通过USB摄像头监控每分钟的闪烁。
我尝试了simpleCV,得到了一个开源代码,经过简单的修改,我能够写下一个能够检测闪烁的代码(在图像的特定位置,一个小的变化出现和消失)。现在我要计算每分钟的闪烁次数,并绘制一个实时图形。我看到一些代码和项目使用傅里叶变换进行此类工作,但无法在我的项目中实现,我最终在这里登陆,请帮助我,提前感谢:Python 我想创建一个软件,它可以使用simpleCV和openCV通过USB摄像头监控每分钟的闪烁。,python,opencv,simplecv,Python,Opencv,Simplecv,我尝试了simpleCV,得到了一个开源代码,经过简单的修改,我能够写下一个能够检测闪烁的代码(在图像的特定位置,一个小的变化出现和消失)。现在我要计算每分钟的闪烁次数,并绘制一个实时图形。我看到一些代码和项目使用傅里叶变换进行此类工作,但无法在我的项目中实现,我最终在这里登陆,请帮助我,提前感谢: from SimpleCV import * cam = Camera() threshold = 5.0 # if mean exceeds this amount do something
from SimpleCV import *
cam = Camera()
threshold = 5.0 # if mean exceeds this amount do something
while True:
previous = cam.getImage() #grab a frame
time.sleep(0.5) #wait for half a second
current = cam.getImage() #grab another frame
diff = current - previous
matrix = diff.getNumpy()
mean = matrix.mean()
diff.show()
if mean >= threshold:
print "Motion Detected"
你已经拥有了你所需要的一切。 由于您在固定间隔测量睡眠(我们称之为时间步)。 您只需要将“闪烁”与随着每次循环迭代而递增的计数一起保存。两次闪烁之间的计时器为:
deltaT = abs(blink1.count - blink2.count)*timeStep
要获得每分钟的闪烁次数,您只需计算从现在(当前计数)到现在-1分钟(每分钟计数=60次/timeStep,如果timeStep以秒为单位)
请注意,此答案中的所有代码都是伪代码,应该只显示想法,而不是完整的解决方案。欢迎使用堆栈溢出。我想你需要澄清你的问题:你到底需要什么样的帮助?你发布的代码有什么问题?@GreenAsJade此代码只能检测运动并生成运动产生的平均值。进一步使用这个,我想计算每分钟的位或闪烁,并想绘制一个实时图形。您需要一些时间测量,如计时器(测量时间间隔)、计数器(计算检测到的闪烁),然后只计算
计数器/时间间隔
。你可以使用移动平均
或指数平滑
来克服时间间隔内的方差问题。@Mika你能用问题附带的给定代码向我解释一下计数器和时间间隔吗?我不是一个硬核程序员:(谢谢你的建议)。
bpm = sum(blinkcounts[now-minute:now])