PANDORE Version 6 | GREYC-IMAGE |
L'opérateur plineartransform étale ou compresse la plage des niveaux de gris de l'image d'entrée im_in en utilisant une transformation linéaire. Le paramètre inverse spécifie si la transformation est positive (inverse=0) ou négative (inverse=1).
L'effet d'une transformation positive est d'étaler les niveaux de gris
entre les nouvelles bornes [min..max].
L'effet d'une transformation négative est d'étaler les niveaux de gris
entre les nouvelles bornes [min,max] puis d'inverser les valeurs
de niveaux de gris: max devient min, min devient max, etc...
La transformation positive d'un pixel 'p' prend la forme :
im_out[p]=(c*(im_in[p]-smin)) + min; c=(max-min) / (smax-smin)
où smin et smax sont respectivement les valeurs minimale et maximale des pixels d'entrée, et c est un facteur de normalisation pour étaler linéairement les niveaux de gris entre min et max.
im_out ^ | max | /-------- | / | / | / | / | / min |--------/ | --------------------- --> im_in | | smin smax
La transformation négative d'un pixel 'p' prend la forme :
im_out[p]=(c*(smax-ims[p])) + min; c=(max-min) / (smax-smin)
où smin et smax sont respectivement les valeurs minimale et maximale des pixels d'entrée, et c est un facteur de normalisation pour étaler linéairement les niveaux de gris entre min et max.
im_out ^ | max |-------\ | \ | \ | \ | \ | \ min | \-------- | --------------------- --> im_in | | smin smax
Pour les images couleur et multispectrales, la transformation utilise l'approche vectorielle : le min et le max sont calculés sur toutes les bandes et chaque bande est modifiée avec la même transformation.
inverse est un entier dans [0,1] qui spécifie si la transformation est positive (inverse=0) ou négative (inverse=1).
min et max spécifient les bornes des valeurs de pixel
en sortie. Les valeurs possibles sont dépendantes du type de l'image d'entrée.
Note: si min < max alors min et max sont égaux
respectivement aux valeurs minimale et maximale
possibles du type (eg. 0 and 255 pour
les images Uchar).
retourne SUCCESS ou FAILURE en cas de mauvais paramétrage.
Applique une transformation positive puis une transformation négative sur l'image tangram.pan pour créer l'image b.pan. Parce que la transformation négative est l'inverse de la transformation positive, l'image de sortie est la même que l'image d'entrée (aux erreurs d'arrondi près). La différence des deux images doit être nulle:
plineartransform 1 0 255 tangram.pan a.pan plineartransform 0 0 255 a.pan b.pan pdif a.pan b.pan c.pan
Applique une transformation linéaire pour crée. l'image a.pan en utilisant les bornes de sortie maximale du type de l'image:
plineartransform 0 1 -1 tangram.pan a.pan
Transformation linéaire par morceaux: les pixels d'entrée de l'intervalle [0, 75] sont comprimés dans la nouvelle plage [0..20] et ceux de l'intervalle [76, 255] sont étalés sur la plage [21, 255]:
pexpthreshold 0 75 tangram.pan a.pan plineartransform 0 0 20 a.pan a1.pan paddcst -75 tangram.pan a.pan plineartransform 0 0 235 a.pan b.pan paddcst 20 b.pan a2.pan por a1.pan a2.pan a.pan
Auteur: Régis Clouard