Hacky set of python scripts which (using pygame and OpenCV) takes a webcam feed and a directory full of audio files, lets you click on the webcam image to set "Hotspots" in the visual field, detects motion in those hotspots and plays a sound when the hotspot is activated.
The code
- reads the directory listing,
- counts how many soundfiles there are,
- sets the pygame mixer to have the right number of channels so you can play multiple sounds at once,
- reads the sounds into pygame objects,
- enters a video loop where the camera feed is read continually
In the camera loop...
- a moving average background model is maintained, based on a sliding window
- this is displayed to the user in one video preview
- motion is detected by subtracting the current frame from the background model
- this is displayed to the user in the other video preview window
If you click on the background model, it'll add a hotspot at that location. You can click as many times as there are sound files in your "sounds" directory
Wave your arms and bang the drums
If you are feeling ambitious, point the camera at a ball pit.