Introduction
Ce tutoriel vous apprendra les bases du travail avec des images à l'aide de la bibliothèque OpenCV-Python. À la fin de ce tutoriel, vous serez capable de lire, d'afficher et d'enregistrer des images.
Importer les bibliothèques requises
Tout d'abord, importons les bibliothèques requises. Vous utiliserez la bibliothèque cv2 pour le traitement d'images. Utilisez import pour l'importer.
Préparation
Ouvrez l'interpréteur Python en tapant la commande suivante dans le terminal du Bureau de la VM.
python3
Détail
Entrez python3 pour démarrer le processus d'interpréteur Python. Ensuite, entrez le code suivant.
import cv2
Après cela, vous pouvez utiliser la bibliothèque cv2 dans votre code.
Lecture d'une image
Pour lire une image à partir d'un fichier, nous utilisons la fonction cv2.imread(). Cette fonction prend le chemin du fichier en argument et renvoie l'image sous forme d'un tableau NumPy.
Le chemin de l'image est /home/labex/Desktop/Image.jpg
Détail
Entrez python pour démarrer le processus d'interpréteur Python. Ensuite, entrez le code suivant.
## Lire l'image
image = cv2.imread('/home/labex/Desktop/Image.jpg')
## Vérifier si l'image est chargée correctement
if image is None:
print('Erreur : Image non trouvée.')
else:
print('Image chargée avec succès.')
Note
La fonction cv2.imread() renvoie None si l'image n'est pas trouvée. Dans ce cas, nous affichons un message d'erreur. Sinon, nous affichons un message de réussite.
Affichage de l'image
Pour afficher l'image, nous utilisons la fonction cv2.imshow(). Cette fonction prend deux arguments : le nom de la fenêtre et l'image à afficher.
De plus, nous utilisons la fonction cv2.waitKey() pour attendre qu'une touche soit pressée. Cela est nécessaire pour maintenir la fenêtre ouverte jusqu'à ce que l'utilisateur appuie sur une touche. La fonction cv2.waitKey() prend un seul argument, qui est le nombre de millisecondes à attendre pour une pression de touche. Si l'utilisateur appuie sur une touche dans le délai spécifié, la fonction renvoie le code de la touche. Sinon, elle renvoie -1. Dans ce cas, nous passons 0 pour attendre indéfiniment une pression de touche.
Enfin, nous utilisons la fonction cv2.destroyAllWindows() pour fermer toutes les fenêtres. Cela est facultatif, mais il est bon de fermer toutes les fenêtres avant de quitter le programme d'interpréteur Python.
Détail
Entrez python pour démarrer le processus d'interpréteur Python. Ensuite, entrez le code suivant.
window_name = 'Image'
## Afficher l'image, l'image a été chargée dans les étapes précédentes
cv2.imshow(window_name, image)
## Attendre une pression de touche et fermer la fenêtre
cv2.waitKey(0)
## Détruire la fenêtre après avoir affiché l'image
cv2.destroyAllWindows()
REMARQUE
- Vous pouvez modifier le
window_namepour votre code et voir le résultat. - Vous pouvez modifier le paramètre de
waitKeypour votre code et voir le résultat. - Pour votre commodité, nous avons supprimé la détection de la correction du chargement d'image dans cette étape.
- Notez que vous utilisez un interpréteur Python, donc le programme ne se termine pas immédiatement après
imshow, mais si vous exécutez un fichier Python, vous devez utiliserwaitKeypour vous assurer que la fenêtre ne se ferme pas aprèsimshow.
Écrire une image dans un fichier
Pour enregistrer une image au format différent, nous utilisons la fonction cv2.imwrite(). Cette fonction prend deux arguments : le chemin du fichier et l'image à enregistrer.
Détail
Entrez python pour démarrer le processus d'interpréteur Python. Ensuite, entrez le code suivant.
## Enregistrer l'image au format différent, l'image a été chargée dans les étapes précédentes
cv2.imwrite('/home/labex/Desktop/Image.png', image)
Note
- Dans ce cas, nous enregistrons l'image au format PNG (Image.png). L'image est enregistrée dans le même répertoire (/home/labex/Desktop/) que le script Python.
- Pour votre commodité, nous avons supprimé la détection de la correction du chargement d'image dans cette étape.
Résumé
Maintenant, vous connaissez les bases du travail avec les images à l'aide de la bibliothèque OpenCV-Python. Vous pouvez expérimenter avec différents formats d'image et explorer des opérations plus avancées telles que le redimensionnement, le recadrage et le filtrage. Bonne programmation!



