Détection des couleurs à l’aide d’OpenCV en Python
La détection des couleurs est une tâche courante dans la vision par ordinateur. OpenCV, une bibliothèque populaire de traitement d’images, offre des fonctionnalités puissantes pour la détection des couleurs en Python. Dans cette série de sections, nous explorerons différentes méthodes de détection des couleurs et leur application pratique dans le domaine de la vision par ordinateur.
a détection de couleurs avec OpenCV en Python est un processus qui implique de filtrer une image pour identifier des objets en fonction de leurs couleurs. Voici les étapes de base pour détecter une couleur spécifique dans une image à l’aide d’OpenCV :
- Installation d’OpenCV :
- Assurez-vous que la bibliothèque OpenCV est installée dans votre environnement Python. Vous pouvez l’installer via pip :
bashpip install opencv-python
- Assurez-vous que la bibliothèque OpenCV est installée dans votre environnement Python. Vous pouvez l’installer via pip :
- Chargement de l’image :
- Importez OpenCV (cv2) et chargez l’image que vous voulez traiter.
python<span class="hljs-keyword">import</span> cv2
<span class="hljs-comment"># Charger une image</span>
image = cv2.imread(<span class="hljs-string">'chemin_de_votre_image.jpg'</span>)
- Importez OpenCV (cv2) et chargez l’image que vous voulez traiter.
- Conversion de l’image en espace de couleur HSV :
- Les images sont généralement en format RGB (Rouge, Vert, Bleu), mais pour la détection de couleurs, il est souvent plus facile de convertir l’image en format HSV (Teinte, Saturation, Valeur) car cela permet de séparer la teinte de la couleur de sa luminosité.
pythonhsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
- Les images sont généralement en format RGB (Rouge, Vert, Bleu), mais pour la détection de couleurs, il est souvent plus facile de convertir l’image en format HSV (Teinte, Saturation, Valeur) car cela permet de séparer la teinte de la couleur de sa luminosité.
- Définir le seuil de couleur :
- Définissez les seuils de la couleur que vous souhaitez détecter. Vous aurez besoin de définir un seuil inférieur et un seuil supérieur pour la teinte, la saturation et la valeur.
- Par exemple, pour détecter la couleur verte :
python<span class="hljs-comment"># Définir les seuils pour la couleur verte</span>
vert_inf = (<span class="hljs-number">40</span>, <span class="hljs-number">40</span>, <span class="hljs-number">40</span>) <span class="hljs-comment"># HSV inférieur</span>
vert_sup = (<span class="hljs-number">70</span>, <span class="hljs-number">255</span>, <span class="hljs-number">255</span>) <span class="hljs-comment"># HSV supérieur</span>
- Création d’un masque :
- Créez un masque qui isolera la couleur désirée.
pythonmasque = cv2.inRange(hsv_image, vert_inf, vert_sup)
- Créez un masque qui isolera la couleur désirée.
- Application du masque à l’image :
- Appliquez le masque à l’image originale pour extraire les parties de l’image qui correspondent à la couleur recherchée.
pythonresultat = cv2.bitwise_and(image, image, mask=masque)
- Appliquez le masque à l’image originale pour extraire les parties de l’image qui correspondent à la couleur recherchée.
- Affichage de l’image :
- Utilisez
cv2.imshow
pour afficher l’image originale et le résultat de la détection de couleur.
pythoncv2.imshow(<span class="hljs-string">'Image Originale'</span>, image)
cv2.imshow(<span class="hljs-string">'Image avec Couleur Detectee'</span>, resultat)
cv2.waitKey(<span class="hljs-number">0</span>)
cv2.destroyAllWindows()
- Utilisez
Gardez à l’esprit que la détection précise des couleurs peut dépendre de divers facteurs, y compris les conditions d’éclairage. Il se peut que vous deviez ajuster les seuils HSV pour obtenir les meilleurs résultats. Vous pouvez également utiliser des outils comme des curseurs (sliders) pour ajuster dynamiquement ces seuils et observer les effets en temps réel.