PANDORE Version 6 | GREYC-IMAGE |
L'opérateur pmitchellrescale utilise un noyau de convolution pour interpoler les valeurs des pixels de l'image d'entrée im_in afin de calculer les valeurs des pixels de l'image de sortie im_out. L'interpolation consiste à pondérer l'influence des pixels d'entrée. Les poids sont dépendants de la position du pixel de sortie et sont donnés par l'algorithme de Mitchell:
Soit tt=sqr(x), B=1/3, C=1/3 | (((12-9*B-6*C)*(x*tt)) + ((-18+12*B+6*C)*tt) + (6-2*B)) / 6 si -1<x<1 M(x) = | (((-1*B-6*C) * (x*tt)) + ((6*B+30*C) *tt) + ((-12*B-48*C)*x) + (8*B+24*C)) / 6 si -2<x<2 | 0 sinon
Par exemple, si l'image est zoomée par 3, alors chaque pixel de sortie est donné par:
for i in [-2, 2] for j in [-2, 2] im_out[p.y][p.x] += M(i*scalex)*M(j*scaley)*im_in[p.y*scaley+j][p.x*scalex+i]
Pour zoomer une carte de régions ou un graphe, il faut utiliser l'operateur prescale.
Retourne SUCCESS ou FAILURE.
Agrandissement de l'image d'un facteur 2 :
pmitchellrescale 2 2 0 tangram.pan a.pan
Réduction de l'image d'un facteur 2 :
pmitchellrescale 0.5 0.5 0 tangram.pan a.pan
Auteur: Régis Clouard