Voici un petit script-fu qui convertit une capture d’image sur une vidéo HDV en une photo classique.
Situation
Il m’arrive de temps en temps d’extraire des images de séquences vidéo HDVpour les utiliser sur le net.
J’utilise Avidemux qui permet de sauver en BMP ou en JPEG.
La vidéo ayant déjà subi une dégradation de par son encodage MPEG2, je choisis le format BMP.
Mais si cette façon permet de préserver l’image, elle la préserve au maximum ! 2 problèmes se présentent alors :
- l’image est anamorphosée (16/9 et 4/3 ont tous les deux 1440 pixels par ligne en HDV),
- la caméra que j’utilise (Sony HDR FX-7) enregistre 1088 lignes et non 1080 comme c’est le cas pour le Full HD.
La solution : un script Gimp
Note : la caméra enregistre 1088 lignes car il s’agit d’un multiple de 16, ce qui doit faciliter la tâche des algorithmes de compression. Ces 8 lignes supplémentaires ne contiennent aucune image.
En image
Les transformations à opérer sont les suivantes :

Transformations successives
Le script
Voici le source du script, à enregistrer dans un fichier hdvtophoto.scm et à placer dans le répertoire ~/.gimp-2.4/script
(define (script-fu-hdvtophoto image) ; Démarre un niveau de undo (gimp-image-undo-group-start image) ; Découpage automatique de l'image (plug-in-autocrop 0 image (car (gimp-image-get-active-drawable image))) ; Supprime les 8 dernières lignes (1088 → 1080) (let* ((old-largeur (car (gimp-image-width image))) (old-hauteur (car (gimp-image-height image))) (new-largeur old-largeur) (new-hauteur (- old-hauteur 8)) (new-offsetx 0) (new-offsety 0) ) (gimp-image-resize image new-largeur new-hauteur new-offsetx new-offsety) ) ; Corrige l’anamorphisme (1440 → 1920) (let* ((old-largeur (car (gimp-image-width image))) (old-hauteur (car (gimp-image-height image))) (new-largeur 1920) (new-hauteur old-hauteur) ) (gimp-image-scale image new-largeur new-hauteur) ) ; Aplatit l'image (gimp-image-flatten image) ; Termine le niveau de undo (gimp-image-undo-group-end image) ) (script-fu-register "script-fu-hdvtophoto" "/Script-Fu/HDV to photo..." "Transforme un arrêt sur image HDV en photo" "Frédéric Bisson " "Frédéric Bisson" "2009-06-30" "*" SF-IMAGE "Input Image" 0 )
Note
Le script ne gère pas l’opération de désentrelacement. Gimp dispose d’un plug-in pour cela mais il procède de façon grossière en divisant le nombre de lignes par 2.
Si les objets filmés ne bougeaient pas, l’opération de désentrelacement peut être ignorée.

