PANDORE Version 6 GREYC-IMAGE

plinearrescale



Augmentation ou réduction de la taille d'une image par interpolation bilinéaire.



Synopsis

plinearrescale rescalex rescaley rescaleyz [im_in|-] [im_out|-]

Description

L'opérateur plinearrescale permet l'agrandissement ou la réduction de la taille d'une image par un facteur rescalex selon l'axe x, rescaley selon l'axe y et rescalez selon l'axe z (pour les images 3D). L'image est agrandie selon un axe si le facteur de rescale est > 1 et réduite si le facteur de rescale est >0 et <1.

Cette version utilise l'interpolation bilinéaire. L'interpolation bilinéaire utilise une moyenne pondérée dans le voisinage 2x2 du pixel de l'image d'entrée pour déterminer la valeur du pixel de sortie :

   sx = (x/rescalex)-||x/rescalex||
   sy = (x/rescaley)-||y/rescaley||
   dx = sx - ||sx||
   dy = sy - ||sy||
   im_out[y][x] = ((1-dx) * (1-dy) * ims[b][sy][sx]
		 + (1-dx)*dy * ims[b][sy+1][sx]
		 + dx * (1y-dy) * ims[b][sy][sx+1]
		 + dx * dy * ims[b][sy+1][sx+1]);

L'interpolation bilinéaire offre un bon compromis entre qualité des résultats et temps d'exécution. Pour les images 2D, de meilleurs résultats peuvent être obtenus avec l'interpolation bicubique mais au prix d'un temps de calcul beaucoup plus long (voir pbicubicrescale).

Pour retailler une carte de régions ou un graphe, il faut utiliser l'opérateur prescale.

Paramètres

Entrées

Sorties

Résultat

Retourne SUCCESS ou FAILURE.

Exemples

Voir aussi

Transformation, pbicubicrescale, prescale

Prototype C++

Errc PLinearRescale( const Img2duc &im_in, Img2duc &im_out, float rescaley, float rescalex );

Auteur: Régis Clouard