Correction TP N°2 : Transformations géométriques sur les images
Ce TP porte sur la manipulation de la position spatiale des pixels. Contrairement aux
transformations ponctuelles qui modifient la couleur, nous déplaçons ici les pixels de leurs
coordonnées (x,y) vers (x’,y’).
Les transformations géométriques modifient la position, l'orientation ou la forme des pixels
sans toucher à leur valeur d'intensité. Une translation, une rotation ou un changement
d’échelle sont des exemples typiques.
1. Les transformations élémentaires
1
Note : Pour ceux qui ont une ancienne version de MATLAB (2013) la fonction
« imtranslate » sera remplacée par ce bout de code :
2
Observation sur les bords : Des zones noires apparaissent sur les bords gauche et
supérieur car aucune donnée de pixel n’existe pour remplir ces nouveaux espaces.
Lors d’une translation des pixels « vides » apparaissent. MATLAB les remplit par défaut avec
la valeur 0 (noir). On peut modifier cela avec l’argument ‘FillValues’.
3
4
5
• Lors de la réduction plusieurs pixels de l’image originale sont fusionnés ou supprimés
pour n’en former qu’un seul dans l’image réduite.
• Les petits détails, textures fines disparaissent car la résolution spatiale devient
insuffisante pour les représenter.
➢ La réduction de taille => sous échantillonnage
2. Les transformations affines
L’agrandissement d’une image nécessite de « deviner » la valeur des nouveaux pixels créés
(Interpolation ou remplissage).
6
1. Plus proche voisin (Nearest Neighbor)
C'est la méthode la plus basique. Elle consiste simplement à donner au nouveau pixel la
valeur du pixel original le plus proche.
7
• Observation : Regardez les bords de la veste du caméraman ou les lignes du trépied.
On observe un effet d'escalier très marqué (aliasing ou crénelage).
C'est la méthode la plus rapide en calcul, mais elle produit des images "pixelisées". Elle
est utile uniquement si l'on veut préserver strictement les valeurs originales (par exemple,
pour une carte de segmentation).
2. Bilinéaire (Bilinear)
Ici, MATLAB calcule la valeur d'un nouveau pixel en faisant la moyenne pondérée des 4
pixels voisins les plus proches.
• Observation : Les "marches d'escalier" ont disparu. Les contours sont beaucoup plus
lisses. Cependant, si vous regardez attentivement les détails du visage ou la texture de
l'herbe en arrière-plan, l'image semble un peu plus "floue" (soft) que l'originale.
C'est un excellent compromis entre complexité de calcul et qualité visuelle. C'est le
standard pour beaucoup d'applications temps réel.
3. Bicubique (Bicubic)
Cette méthode est plus sophistiquée : elle utilise une surface cubique pour interpoler la valeur
à partir des 16 pixels environnants (un voisinage de 4x4).
• Observation : C'est le résultat le plus esthétique. La méthode bicubique préserve
mieux les contrastes et les détails fins (comme les structures du bâtiment au loin) tout
en évitant le flou excessif du bilinéaire.
C'est la méthode de référence pour le traitement d'image de haute qualité (Photoshop,
impression, etc.), bien qu'elle demande plus de ressources processeur.
8
Tableau comparatif :
Méthode Voisinage Rendu visuel Complexité
Plus proche 1 pixel Pixelisé Très faible
Bilinéaire 4 pixels Lisse mais flou Moyenne
Bicubique 16 pixels Net et précis Élevée
=> L’analyse des trois méthodes d’interpolation met en évidence une différence notable
en termes de qualité d’image. La méthode du plus proche voisin produit une image pixelisée
avec des contours irréguliers, due à la simple duplication des pixels, ce qui dégrade la qualité
visuelle. L’interpolation bilinéaire améliore le rendu en introduisant un lissage des transitions
entre les niveaux de gris, mais au prix d’un léger flou qui réduit la netteté des détails. En
revanche, l’interpolation bicubique offre le meilleur compromis en termes de qualité, en
produisant une image plus douce tout en conservant des contours plus nets et des détails
mieux définis. Ainsi, pour des applications nécessitant une haute qualité visuelle, la méthode
bicubique est la plus appropriée.
Note : Vous remarquerez que sur une image en noir et blanc comme celle-ci, la différence
entre bilinéaire et bicubique est parfois subtile à l'œil nu sans zoomer. C'est une excellente
occasion d'apprendre à utiliser la fonction imtool ou un zoom sur des zones spécifiques
(comme l'œil ou les doigts) pour voir la supériorité du bicubique.
Conclusion :
Ce travail pratique permet de maîtriser les outils de manipulation spatiale des images
numériques sous MATLAB. A travers l’étude des transformations élémentaires et affines,
nous avons pu dégager les conclusions suivantes :
9
• Impact du déplacement spatial : Les opérations de translation, rotation, et symétrie
modifient la position des pixels (x,y) vers (x’,y’) sans altérer la valeur intrinsèque de
leur niveau de gris, contrairement aux transformations ponctuelles.
• Gestion des bordures : Nous avons observé que les transformations comme la
translation ou la rotation créent des zones « vides » sur les bords de l’image,
nécessitant l’utilisation de valeurs de remplissage (généralement le noir par défaut)
pour maintenir une structure de matrice régulière.
• Importance de l’interpolation : Lors d’un changement d’échelle, le choix de
l’algorithme d’interpolation est crucial pour la qualité de l’image. L’interpolation du
plus proche voisin est rapide mais génère des effets d’aliasing. Les méthodes bilinéaire
et bicubique offrent un rendu bien plus lisse et professionnel, la méthode bicubique
étant la plus performante pour conserver la netteté des détails lors d’un
agrandissement.
• Limite de réduction : Nous avons confirmé d’une réduction de la définition entraîne
une perte d’information irréversible car plusieurs pixels sources doivent être fusionnés
en un seul, faisant disparaître les détails fins de l’image d’origine.
10