#! /usr/bin/env python # -*- coding: utf-8 -*- import subprocess import math import Image import os def imgdiff(A,B): Asize = A.size Bsize = B.size if(Asize != Bsize): B = B.resize(Asize) Apix = A.load() Bpix = B.load() diff = 0 for x in range(0,Asize[0]/10): for y in range(0,Asize[1]/10): diff += math.sqrt((Apix[x*10,y*10][0]-Bpix[x*10,y*10][0])**2 + (Apix[x*10,y*10][1]-Bpix[x*10,y*10][1])**2 + (Apix[x*10,y*10][1]-Bpix[x*10,y*10][1])**2) return 1 - (diff/(Asize[0]/10*Asize[1]/10))/(255.0*math.sqrt(3)) #Faster way on maemo? def takePic(): return subprocess.Popen("/usr/bin/gst-launch v4l2camsrc device=/dev/video0 num-buffers=1 \! video/x-raw-yuv,width=640,height=480 \! ffmpegcolorspace \! jpegenc \! filesink location=temp.jpg >> /dev/null", shell=True) p = takePic() sts = os.waitpid(p.pid, 0) A = Image.open("temp.jpg") p = takePic() while True: if p.poll() == 0: B = A A = Image.open("temp.jpg") p = takePic() diff = imgdiff(A, B) if diff < 0.97: print "Moves"