PANDORE Version 6 GREYC-IMAGE

pmitchellrescale



Retaille d'une image par l'algorithme de Mitchell.



Synopsis

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

Description

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.

Paramètres

Entrées

Sorties

Résultat

Retourne SUCCESS ou FAILURE.

Exemples

Voir aussi

Transformation, plinearrescale, pbicubicrescale, pbellrescale, phermiterescale, planczosrescale, pquadraticbsplinerescale, prescale

Prototype C++

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

Auteur: Régis Clouard