GIFs animées depuis une webcam

Hop, nous allons nous pencher sur les images vivantes, ces live pictures que nous pouvons extraire d'une webcam (ou d'une trendnet-cam, mais c'est une autre histoire...) et passer à la kalachnikov numérique afin d'en faire une piclolante.

Pour l'acquisition des images, j'utilise le logiciel vgrabbj, mais il en existe d'autres. Nous allons opérer, pour cette fois-ci, en deux étapes : la première passe va servir à capturer les images à intervalles réguliers, et la seconde va procéder aux traitements puis à l'assemblage final.

Souriez, vous êtes webcamés

#!/bin/bash

NOMBRE=50
DELAY=10
DEVICE=/dev/video1
GRABOPT="-S -o png -i sif -d $DEVICE"

for frame in $(seq 1 $NOMBRE)
do
	figlet -W $frame / $NOMBRE
	ecran=/tmp/shoot_$(printf "%03d" $frame).png
	vgrabbj $GRABOPT > $ecran
	sleep 1
done

Nous débutons classiquement par l'initialisation de quelques valeurs : le nombre d'images que nous allons capturer, la caméra (DEVICE) à utiliser, les options diverses pour le programme de capture, toussa...
Ensuite nous bouclons le nombre de fois necessaire pour capturer les $NOMBRE images avec une seconde d'attente entre chaque cliché. Notez l'utilisation de figlet -W qui permet de suivre l'avancée du tournage, et la construction du nom du fichier intermédiaire avec la fonction $(printf "%03d" $frame) qui permet d'avoir le numéro de séquence formaté correctement pour la suite des opérations.

Traitements

Voilà, nous avons capturé nos images. Pour la suite du script, nous repartons dans une boucle qui va appeler le ou les traitements. En général, on commence par réduire un peu la taille de l'image afin d'avoir une GIF finale d'un poids raisonnable. Et ensuite on applique un (ou plusieurs) traitement(s) (pas si) quelconque (que ça (ou pas...) )

for frame in $(seq 1 $NOMBRE)
do
	ecran=/tmp/shoot_$(printf "%03d" $frame).png
	convert -resize 75% $ecran $ecran
	
	final=/tmp/final_$(printf "%03d" $frame).png
	gmic $ecran -topographic_map 16 -o $final
	rm $ecran
done

Voici donc quelques résultats :

Il ne vous reste plus qu'à écrire un petit scénario mettant en scène des chatons qui jouent du Fender Rhod's en plopant des bulles pour devenir une star planétaire de la GIF animée.