Étape 7: Capture de mouvement
Maintenant, nous sommes en mesure de saisir une image et l’envoyer correctement au-dessus de l’air à l’aide de PiFm. Il faut maintenant se concentrer sur la capture d’image de déclenchement lorsque quelque chose d’intéressant se passe devant la caméra. J’ai implémenté cela en python, à l’aide de PIL. Le code se trouvent dans sstvcatch.py. Il fonctionne tout à fait franche, il compare juste les pixels de l’image précédente avec l’image actuelle. Lorsque l’écart est grand, l’image est transmise. Voici un extrait de code :
# 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())
Obtenir le code complet peut être trouvé sur GitHub.