Paso 7: Captura de movimiento
Ahora somos capaces de tomar una imagen y enviarla correctamente por el aire utilizando PiFm. Ahora necesitamos para centrarse en la activación de la captura de la imagen cuando pasa algo interesante delante de la cámara. Esto he implementado en python, usando PIL. El código puede encontrarse en sstvcatch.py. Funciona muy sencillo, sólo compara los píxeles de la imagen anterior con la imagen actual. Cuando la diferencia es muy grande, se transmite la imagen actual. Aquí está un fragmento de código:
# loop forever while (True): # grab comparison image imgnew, bufnew = captureImage() # Count changed pixel changedPixels = 0 for x in xrange(0, 320): for y in xrange(0, 256): # Just check red channel as it's dominant for PiCam NoIR pixdiff = abs(buf[x,y][0] - bufnew[x,y][0]) if pixdiff > threshold: changedPixels += 1 # Transmit an image if pixels changed if changedPixels > sensitivity: # Swap comparison buffers img = imgnew buf = bufnew transmitImage(img.copy())
El código completo puede encontrarse en GitHub.