Réduction d'une image
- Réduire une image revient à réduire la résolution de l'image
- n fois moins de pixels en hauteur et en largeur => résolution n fois plus grossière;
- 1 pixel de l'image réduite correspond à un bloc de n x n pixels dans l'image
à résolution fine.
- Méthode de réduction la plus commune
- Découpage de l'image originelle en blocs de n x n pixels;
- calcul sur chaque bloc de la moyenne des intensités;
- l'intensité moyenne d'un bloc est l'intensité du pixel correspondant au bloc
dans l'image réduite.
- Illustration de la réduction (5122 en 2562 - 1282 - 642)
Agrandissement d'une image
Rééchantillonnage d'une image
- Rééchantillonner c'est modifier le nombre de pixels
- Sous-échantillonnage => réduction
- Sur-échantillonnage => augmentation
- ajout de pixels par interpolation
- Le redimensionnement d'une image consiste donc en un rééchantillonnage
dans chacune des dimensions spatiales.
- Un rééchantillonnage peut détériorer la qualité et la netteté
- Importance du choix de la méthode d'interpolation
- plus proche voisin : rapide, mais la moins précise;
- bilinéaire : qualité moyenne (calcul sur 4 pixels);
- bicubique : lente, mais la plus précise (analyse de 16 pixels).
Transformation rigide
Qu'est-ce qu'une transformation rigide
- Combinaison d'une rotation et d'une translation.
- Transformation définie par un vecteur de paramètres Θ
Θ=(tx,ty,θz)T,
où :
- tx décrit la translation en x;
- ty décrit la translation en y;
- θz spécifie l'angle de rotation par rapport à z.
Formulation de la transformation - rotation discrète
- Soient
- S=(x,y)T un pixel de l'image de départ;
- S′=(x′,y′)T son image par la transformation dans l'image d'arrivée
on a :
S′=TΘ(S).
(x′y′)=[(cosθzsinθz−sinθzcosθz)×(xy)]+(txtz)
où [u] dénote la partie entière de u.
- Inconvénients
- Non bijective.
- Non surjective (image d'arrivée avec des trous).
- Solution
- Pour obtenir la couleur du pixel S′ on calcul son antécédent S.
- Parcours de l'image d'arrivée et non de l'image de départ
=> Utilisation de la rotation discrète inverse
Formulation de la transformation - rotation discrète inverse
- Soient
- S=(x,y)T un pixel de l'image de départ;
- S′=(x′,y′)T son image par la transformation dans l'image d'arrivée
on a :
S=T−1Θ(S′).
(xy)=[(cosθz−sinθzsinθzcosθz)×(x′−txy′−ty)]+(1212)
où [u] dénote la partie entière de u.
- Avantage
- Evite le problème de la non surjectivité de la rotation.
- Remarque
- Ajout de (12,12)T => troncature vers le plus proche voisin.
Interpolation bilinéaire
- Rappel sur l'interpolation linéaire
- Soit c∈[a;b]∈R avec f(c) non calculable;
- on remplace f sur [a;b] par le segment [AB]
f(c)≈f(a)+(c−a)×f(b)−f(a)b−a
Illustration
- Soient (x,y),(x,y+1),(x+1,y) et (x+1,y+1) 4~points du plan 2D pour
lesquels on peut calculer l'image par f.
- Principe de calcul de l'image de $c \in \left[x;x+1\right] \times \left[y;y+1\right]
- Calcul par interpolation linéaire de f(c′) et f(c″
- f(c')=f(x,y)+\Delta y \times (f(x,y+1)-f(x,y))
- f(c'')=f(x+1,y)+\Delta y \times (f(x+1,y+1)-f(x+1,y))
- Calcul par interpolation linéaire de f(c)
- f(c)=f(c')+\Delta x \times (f(c'')-f(c'))
Remarque
- c=(x+\Delta x,y+\Delta y), c'=(x,y+\Delta y), c''=(x+1,y+\Deltay)
Illustration
Matrices de transformation
- Passage des coordonnées classiques en coordonnées homogènes
\left(\begin{array}{c} x \\ y \end{array}\right) =
\left(\begin{array}{c} x' \\ y' \\ z' \\ \end{array}\right)
telles que x=\frac{x'}{z'} et y=\frac{y'}{z'}.
- Transformations élémentaires définies par une matrice
\begin{array}{ccc} Identité & Rotation & Translation \\ \left(\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right) & \left(\begin{array}{ccc} \cos \theta_z & \sin \theta_z & 0 \\ -\sin \theta_z & \cos \theta_z & 0 \\ 0 & 1 &0 \end{array}\right) & \left(\begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ t_x & t_y & 1 \end{array}\right) \\ \end{array}
Travaux pratiques
- Mettre en oeuvre la transformation rigide en utilisant les deux formulations :
- rotation discrète;
- rotation discrète inverse.
- Utiliser comme centre de la transformation le milieu de l'image et non l'origine comme dans c'est le cas dans les formules données . Vous devrez donc légèrement modifier les formules.
- Constater que dans le premier cas on obtient un image transformée avec des trous, alors que dans le second cas l'image est correcte.
- Remarques
- Lorsque vous aurez besoin du niveau de gris d'un pixel en dehors de l'image à transformer, vous utiliserez le noir (RGB = (0,0,0)).
- Les deux formules font une interpolation de type plus proche voisin. On aurait pu cependant utiliser une interpolation bilinéaire.
- Illustration de la transformation rigide de centre (100,100), de vecteur translation (10,10) et d'angle 20 degrés.
Image d'origine | Transf. rotation disc. |
 |  |
Image d'origine | Transf. rotation disc. inverse |
 |  |