Transformation gĂ©omĂ©trique d’images
Les transformations gĂ©omĂ©triques jouent un rĂ´le crucial dans le traitement d’images, permettant de modifier la perspective, la taille et l’orientation des images.
Redimensionnement
Le redimensionnement est une des transformations les plus courantes. OpenCV permet de redimensionner une image avec la fonction
.
import cv2
# Charger l'image
image = cv2.imread('chemin/vers/image.jpg')
# Redimensionner l'image
image_resized = cv2.resize(image, (nouvelle_largeur, nouvelle_hauteur))
cv2.imshow('Image redimensionnée', image_resized)
cv2.waitKey(0)
cv2.destroyAllWindows()
Rotation
La rotation d’une image Ă un certain angle se fait en utilisant la matrice de rotation obtenue avec
cv2.getRotationMatrix2D()
.
# Centre de rotation (le centre de l'image dans ce cas)
centre = (largeur / 2, hauteur / 2)
# Matrice de rotation
matrice_rotation = cv2.getRotationMatrix2D(centre, angle, echelle)
# Appliquer la rotation
image_rotated = cv2.warpAffine(image, matrice_rotation, (largeur, hauteur))
Exercice 1 : Appliquer une rotation
- Chargez une image.
- Appliquez une rotation de 45 degrés sans perte de contenu.
- Affichez l’image originale et l’image tournĂ©e.
Conversion de couleurs et gestion des canaux
OpenCV permet de convertir facilement les images d’un espace colorimĂ©trique Ă un autre (par exemple, de BGR Ă RGB, HSV, etc.) avec la fonction
.
Changement d’espace colorimĂ©trique
# Convertir une image BGR en HSV
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
OpenCV permet de convertir facilement les images d’un espace colorimĂ©trique Ă un autre, comme de BGR (Bleu, Vert, Rouge) Ă RGB, HSV (Teinte, Saturation, Valeur) ou Ă des images en niveaux de gris.
# Convertir une image BGR en RGB
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Convertir une image BGR en HSV
image_hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
# Convertir une image BGR en niveaux de gris
image_grise = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
SĂ©paration et fusion de canaux
Vous pouvez séparer une image en ses canaux de couleur individuels, puis les fusionner ou manipuler individuellement.
# SĂ©parer les canaux
B, G, R = cv2.split(image)
# Fusionner les canaux
image_fusionnee = cv2.merge([B, G, R])
Exercice 2 : Manipulation des canaux
- Chargez une image en couleur.
- SĂ©parez-la en ses canaux Rouge, Vert et Bleu.
- CrĂ©ez une nouvelle image en Ă©changeant deux canaux de l’image originale.
- Comparez l’image originale et l’image modifiĂ©e.
Application de masques et de filtres
Les masques et les filtres sont des outils puissants pour amĂ©liorer ou extraire des informations d’une image.
Application d’un filtre
Les filtres permettent de rĂ©aliser des opĂ©rations telles que le flou, l’accentuation ou la dĂ©tection de bords.
# Appliquer un flou gaussien
image_floue = cv2.GaussianBlur(image, (5, 5), 0)
Utilisation de masques
Un masque permet d’appliquer une opĂ©ration sur une partie spĂ©cifique de l’image.
# Créer un masque binaire
masque = cv2.inRange(image_hsv, borne_inf, borne_sup)
# Appliquer le masque
image_masquee = cv2.bitwise_and(image, image, mask=masque)
Exercice 3 : Filtrage par masque
- Chargez une image en couleur.
- Convertissez l’image en espace de couleur HSV.
- Créez un masque pour isoler une certaine gamme de couleurs.
- Appliquez ce masque pour extraire la partie de l’image contenant les couleurs ciblĂ©es.
- Affichez l’image originale et le rĂ©sultat du masquage.
Ces techniques avancĂ©es de manipulation d’images ouvrent la porte Ă de nombreuses applications, de l’amĂ©lioration de la qualitĂ© d’image Ă la reconnaissance d’objets. En maĂ®trisant ces outils, vous serez bien Ă©quipĂ© pour aborder des projets plus complexes en traitement d’images et en vision par ordinateur.