floutage avec Avisynth

Modérateur: Modérateurs

floutage avec Avisynth

Messagepar leon1789 » Sam 10 Nov, 2012 18:19

Bonjour

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... :ange: )

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)


Bien sûr, les arguments x,y,largeur, hauteur peuvent être de valeurs différentes d'une ligne à l'autre.
Dernière édition par leon1789 le Lun 28 Mar, 2016 20:08, édité 5 fois.
Avatar de l’utilisateur
leon1789
 
Messages: 775
Inscription: 26 Aoû 2007

Messagepar leon1789 » Sam 10 Nov, 2012 18:22

J'ai testé ce script sur le sous-titre ci-dessus, et également sur le logo d'une chaîne de télé. Ca fonctionne bien. Mais ce ne sont que 2 exemples en définition standard. Reste à voir comment se comporte le script sur d'autres exemples et en HD (normalement, il ne doit pas y avoir davantage de soucis quand SD).
Avatar de l’utilisateur
leon1789
 
Messages: 775
Inscription: 26 Aoû 2007

Messagepar Subbat » Sam 10 Nov, 2012 22:51

Franchement pas mal... Si on cherche pas le détail, on premier coup d'œil c'est vraiment bien je trouve...
Image
Image Image
Avatar de l’utilisateur
Subbat
Administrateur
Administrateur
 
Messages: 8419
Inscription: 11 Déc 2008
Localisation: Quelque part... dans le centre de la France...

Messagepar pepsilite » Dim 11 Nov, 2012 4:17

Héhé, je vais tester ça :D
05/07/15 m4ng v5 est disponible au téléchargement en version finale : m4ng v5
Avatar de l’utilisateur
pepsilite
The Grinch
The Grinch
 
Messages: 23005
Inscription: 03 Fév 2007
Localisation: Chez moi le plus possible ...

Messagepar pepsilite » Dim 11 Nov, 2012 4:28

Waw, c'est très impressionnant, en plus pas besoin de layer avec une deuxième vidéo, le gain en ressource est aussi non négligeable, bravo Léon :D
05/07/15 m4ng v5 est disponible au téléchargement en version finale : m4ng v5
Avatar de l’utilisateur
pepsilite
The Grinch
The Grinch
 
Messages: 23005
Inscription: 03 Fév 2007
Localisation: Chez moi le plus possible ...

Messagepar leon1789 » Dim 11 Nov, 2012 10:06

Merci :)

Comparé au code implémenté de m4ng, ma proposition ZoneFloue est deux fois moins rapide (sur mon ordi). Cela dit, ZoneFloue reste très rapide tout de même (deux fois plus rapide qu'un resize de l'image par exemple).

Mais bon, le résultat de ZoneFloue n'est pas sans défaut : parfois, le floutage est assez choquant...
Avatar de l’utilisateur
leon1789
 
Messages: 775
Inscription: 26 Aoû 2007

Messagepar pepsilite » Dim 11 Nov, 2012 14:19

Comment ça peut être moins rapide que le code actuel de m4ng v3 vu qu'il doit gérer vidéos distinctes pour générer l'effet flou?
05/07/15 m4ng v5 est disponible au téléchargement en version finale : m4ng v5
Avatar de l’utilisateur
pepsilite
The Grinch
The Grinch
 
Messages: 23005
Inscription: 03 Fév 2007
Localisation: Chez moi le plus possible ...

Messagepar leon1789 » Dim 11 Nov, 2012 17:05

le code de m4ng est
Code: Tout sélectionner
(...)
Video2=Video
Video2=Crop(Video2, 512, 340, 82, 30)
LoadPlugin("C:\PROGRA~2\m4ng_v3\system\VariableBlur.dll")
Video2=variableblur(Video2,rady=250,Y=3,U=3,V=3,gaussian=true)
Video=ConvertToYUY2(Video)
Video2=ConvertToYUY2(Video2)
Video=Layer(Video, Video2, "add", 255, 512, 340)
Video=ConvertToYV12(Video)
(...)

Il y a bien la variable video2 à gérer, mais la résolution de video2 est toute petite car c'est la région à flouter ( --> crop) . Du coup, l'opération de variableblur qui s'effectue dessus est rapide. Après, il y a les fonctions Convert et Layer, mais elles vont vite.

Du coté de ZoneFloue.avsi , il y a plein de manipulations de la zone à flouter (variable f dans le code) pour éliminer le logo et un masque de floutage en plus (variable masq dans le code) pour avoir les bords de la zone floutée plus "fondus" dans la vidéo.
Avatar de l’utilisateur
leon1789
 
Messages: 775
Inscription: 26 Aoû 2007

Messagepar pepsilite » Dim 11 Nov, 2012 17:33

Ah ouais, peut-être, chez moi ça ne se remarque pas en tout cas.
05/07/15 m4ng v5 est disponible au téléchargement en version finale : m4ng v5
Avatar de l’utilisateur
pepsilite
The Grinch
The Grinch
 
Messages: 23005
Inscription: 03 Fév 2007
Localisation: Chez moi le plus possible ...

Messagepar leon1789 » Sam 26 Mar, 2016 21:20

Mise à jour le 26 03 2016
Avatar de l’utilisateur
leon1789
 
Messages: 775
Inscription: 26 Aoû 2007

Messagepar pepsilite » Lun 28 Mar, 2016 17:35

Cool ...
05/07/15 m4ng v5 est disponible au téléchargement en version finale : m4ng v5
Avatar de l’utilisateur
pepsilite
The Grinch
The Grinch
 
Messages: 23005
Inscription: 03 Fév 2007
Localisation: Chez moi le plus possible ...


Retourner vers Scripts Avisynth

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités