motion computation from video using pyglet in python
Posted
by kuaywai
on Stack Overflow
See other posts from Stack Overflow
or by kuaywai
Published on 2010-03-28T08:00:56Z
Indexed on
2010/03/28
8:03 UTC
Read the original article
Hit count: 1362
Hi, I am writing a simple motion detection program but i want it to be cross platform so im using python and the pyglet library since it provides a simple way to load videos in different formats (specially wmv and mpeg). So far i have the code given below which loads the movie and plays it in a window. Now i need to: 1) grab frame at time t and t-1 2) do a subtraction to see which pixels are active for motion detection.
any ideas on how to grab frames and to skip over frames and is it possible to put the pixel values into a matrix in numpy or something directly from pyglet? or should look into using something other than pyglet?
thanks kuaywai
import pyglet import sys window = pyglet.window.Window(resizable=True) window.set_minimum_size(320,200) window.set_caption('Motion detect 1.0') video_intro = pyglet.resource.media('movie1.wmv') player = pyglet.media.Player() player.queue(video_intro)
print 'calculating movie size...' if not player.source or not player.source.video_format: sys.exit
myWidth = player.source.video_format.width myHeight = player.source.video_format.height if player.source.video_format.sample_aspect > 1: myWidth *= player.source.video_format.sample_aspect elif player.source.video_format.sample_aspect < 1: myHeight /= player.source.video_format.sample_aspect
print 'its size is %d,%d' % (myWidth,myHeight) player.play()
@window.event def on_draw(): window.clear() (w,h) = window.get_size() player.get_texture().blit(0, h-myHeight, width=myWidth, height=myHeight)
pyglet.app.run()
© Stack Overflow or respective owner