Voici un petit script avisynth qui permet de flouter une zone rectangulaire (sous-titres ou logo) d'une vidéo.
ZoneFloue (clip v, int x, int y, int width, int height, bool "show", int "frame_begin", int "frame_end")
v désigne la vidéo
x,y désignent les coordonnées du sommet en haut à gauche du rectangle à flouter
width, height désignent respectivement la largeur et la hauteur du rectangle à flouter
show (optionnel) est un booléen qui permet, si show=true, de voir sur l'image le rectangle à flouter.
frame_begin et frame_end (optionels) désignent les images entre lesquelles on floute (frames incluses).
Le script est disponible ici : http://leon1789.perso.sfr.fr/avisynth/ZoneFloue.zip
Dans ce fichier zip, il y a la librairie mt_masktools.dll dont le script a besoin.
Exemple d'utilisation :
On veut flouter le sous-titre de cette image
(image tirée "textuellement" du film Apocalyto... )
On place un rectangle "virtuel" à l'endroit où se trouve le sous-titre :
Ici x=202 , y=320 , width=300, height=54
Pour obtenir l'image finale, le code avisynth est simplement video.ZoneFloue(202,320,300,54)
On peut aussi vouloir flouter certains passages, en précisant un ou plusieurs intervalles d'images :
Code : Tout sélectionner
video=video.zonefloue(x,y,largeur,hauteur) # flou sur toute la vidéo (comme avant)
video=video.zonefloue(x,y,largeur,hauteur, frame_end=20) # flou jusqu'à l'image n°20 (en partant du début)
video=video.zonefloue(x,y,largeur,hauteur, frame_begin=30, frame_end=200) # flou entre les images 30 et 200
video=video.zonefloue(x,y,largeur,hauteur, frame_begin=300, frame_end=300) # flou sur une seule image, la n°300
video=video.zonefloue(x,y,largeur,hauteur, frame_begin=100) # flou à partie de l'image 100 (jusqu'à la fin de la vidéo)