从一组中检测明显不同的图像,例如使用OpenCV或SimpleCV

Max*_*sky 2 opencv image motion-detection computer-vision simplecv

我仍然通过网络摄像头拍摄了一晚的图像.大多数是相同的,因为图像中的照明是均匀的.然而,有些与其他人有显着差异 - 他们在框架中有明显的人体运动.

如何检测哪些图像明显不同,以便将运动包含在其中?更好的是,有没有一种专门检测运动的方法

我猜测像OpenCV或SimpleCV这样的库可以很容易地实现这一点,但我不限于使用那些.

Fro*_*oyo 6

在SimpleCV中,

cam = Camera()
prev = cam.getImage()
while True:
    current = cam.getImage()
    fs = current.findMotion(prev, method="LK")
    if fs: #if there's motion
        print "motion found"
    prev = current
Run Code Online (Sandbox Code Playgroud)

Image.findMotion()使用光流来检测运动.你可以很容易地使用它.添加一些关于您期望的运动量的条件.

fs.dx并且fs.dy会给你所有已检测运动的点.

我做了一个例子,我从相机中获取输入并检测水平和垂直运动,我控制Banshee Media Player.你可以在我的GitHub上找到它.