0

我尝试使用 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"
4

1 回答 1

0

你已经拥有了你需要的一切。由于您以固定的间隔测量睡眠(我们称之为 timeStep)。您只需将“闪烁”与每次循环迭代时递增的计数一起保存。两个闪烁之间的计时器是:

deltaT = abs(blink1.count - blink2.count)*timeStep

要获得每分钟闪烁次数,您可以简单地计算现在(当前计数)和现在之间发生的闪烁次数 - 1 分钟(每分钟计数 = 60/timeStep,如果 timeStep 以秒为单位)

bpm = sum(blinkcounts[now-minute:now])

请注意,此答案中的所有代码都是 Pseudcode 并且应该只显示想法而不是完整的解决方案。

于 2014-01-22T13:39:37.670 回答