Bien sûr, je vais vous fournir un exemple de code Python pour simuler un processus de vision par ordinateur. Nous allons créer un programme simple qui détecte des objets dans une image en utilisant la bibliothèque OpenCV. Ce programme chargera une image, convertira l’image en niveaux de gris, appliquera un seuillage pour obtenir une image binaire, et enfin détectera les contours des objets présents dans l’image.
« `python
import cv2
import numpy as np
# Charger l’image
image = cv2.imread(‘pathtoyourimage.jpg’)
# Vérifier si l’image a été chargée correctement
if image is None:
print(« Erreur: l’image n’a pas pu être chargée. »)
else:
# Convertir l’image en niveaux de gris
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Appliquer un seuillage pour obtenir une image binaire
_, binary_image = cv2.threshold(gray_image, 127, 255, cv2.THRESH_BINARY)
# Détecter les contours dans l’image binaire
contours, _ = cv2.findContours(binary_image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# Dessiner les contours sur l’image originale
image_with_contours = cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
# Afficher l’image avec les contours détectés
cv2.imshow(‘Image avec contours’, image_with_contours)
cv2.waitKey(0)
cv2.destroyAllWindows()
« `
### Explication du code
1. Charger l’image:
– Nous utilisons `cv2.imread` pour charger l’image depuis le chemin spécifié. Assurez-vous de remplacer `’pathtoyourimage.jpg’` par le chemin réel de votre image.
2. Vérifier si l’image a été chargée correctement:
– Si l’image n’a pas pu être chargée, un message d’erreur est affiché.
3. Convertir l’image en niveaux de gris:
– Utilisation de `cv2.cvtColor` pour convertir l’image en niveaux de gris, ce qui simplifie le traitement ultérieur.
4. Appliquer un seuillage:
– Utilisation de `cv2.threshold` pour appliquer un seuillage à l’image en niveaux de gris. Les pixels avec une intensité supérieure à 127 sont remplacés par 255 (blanc), et les autres par 0 (noir), créant ainsi une image binaire.
5. Détecter les contours:
– Utilisation de `cv2.findContours` pour détecter les contours dans l’image binaire. Les contours sont des structures qui délimitent les objets dans l’image.
6. Dessiner les contours sur l’image originale:
– Utilisation de `cv2.drawContours` pour dessiner les contours détectés sur l’image originale avec une couleur verte (`(0, 255, 0)`) et une épaisseur de 2 pixels.
7. Afficher l’image avec les contours:
– Utilisation de `cv2.imshow` pour afficher l’image avec les contours détectés. La fenêtre reste ouverte jusqu’à ce qu’une touche soit pressée (`cv2.waitKey(0)`), puis toutes les fenêtres sont fermées avec `cv2.destroyAllWindows()`.
### Conclusion
Ce code Python utilise OpenCV pour simuler un processus de vision par ordinateur en détectant les contours des objets dans une image. Vous pouvez adapter ce code pour d’autres types de traitement d’image en fonction de vos besoins spécifiques.