Python 我想创建一个软件,它可以使用simpleCV和openCV通过USB摄像头监控每分钟的闪烁。

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

我尝试了simpleCV,得到了一个开源代码,经过简单的修改,我能够写下一个能够检测闪烁的代码(在图像的特定位置,一个小的变化出现和消失)。现在我要计算每分钟的闪烁次数,并绘制一个实时图形。我看到一些代码和项目使用傅里叶变换进行此类工作,但无法在我的项目中实现,我最终在这里登陆,请帮助我,提前感谢:

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])