PANDORE Version 6 GREYC-IMAGE

plineartransform



Transformation linéaire des niveaux de gris.



Synopsis

plineartransform inverse min max [-m mask] [im_in|-] [im_out|-]

Description

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.

Paramètres

Entrées

Sorties

Résultat

retourne SUCCESS ou FAILURE en cas de mauvais paramétrage.

Exemples

Voir aussi

Transformation de la LUT, plogtransform, ppowerlawtransform

Prototype C++

Errc PLinearTransform( const Img2duc &im_in, const Img2duc &im_out, int inverse, float min, float max );

Auteur: Régis Clouard