Я пишу простую программу обнаружения движения, но я хочу, чтобы она была кроссплатформенной, поэтому я использую python и библиотеку pyglet, поскольку она предоставляет простой способ загрузки видео в различных форматах (особенно wmv и mpeg). Пока у меня есть код, приведенный ниже, который загружает фильм и воспроизводит его в окне. Теперь мне нужно:
1) захват кадра в моменты времени t и t-1
2) сделать вычитание, чтобы увидеть, какие пиксели активны для обнаружения движения.
есть какие-нибудь идеи о том, как захватывать кадры и пропускать кадры, и можно ли поместить значения пикселей в матрицу в виде numpy или что-то непосредственно из pyglet? или стоит заняться чем-то другим, кроме pyglet?
спасибо
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()