PANDORE Version 6 | GREYC-IMAGE |
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.
Retourne SUCCESS ou FAILURE.
Agrandissement de l'image d'un facteur 2 :
plinearrescale 2 2 0 tangram.pan a.pan
Réduction de l'image d'un facteur 2 :
plinearrescale 0.5 0.5 0 tangram.pan a.pan
Auteur: Régis Clouard