![Détection des couleurs en Python à l'aide d'OpenCV : 8 étapes Détection des couleurs en Python à l'aide d'OpenCV : 8 étapes](https://i.howwhatproduce.com/images/007/image-18629-j.webp)
Table des matières:
- Fournitures
- Étape 1: Importer des bibliothèques
- Étape 2: Création de barres de piste
- Étape 3: Création de TrackBars pour la teinte, la saturation et la valeur
- Étape 4: Comment lire et redimensionner l'image
- Étape 5: Lecture des valeurs de la barre de piste pour l'appliquer à une image
- Étape 6: Affichage de l'image et définition des limites supérieure et inférieure
- Étape 7: maintenant la dernière étape
- Étape 8: Résultats finaux
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45
![Image Image](https://i.howwhatproduce.com/images/007/image-18629-2-j.webp)
![](https://i.ytimg.com/vi/MrkJVJ9ESOc/hqdefault.jpg)
Salut! Cette instructable est utilisée pour expliquer comment extraire une couleur spécifique d'une image en python à l'aide de la bibliothèque openCV. Si vous débutez dans cette technique, ne vous inquiétez pas, à la fin de ce guide, vous pourrez programmer votre propre programme de détection des couleurs.
Voici les fonctions ou nous pouvons dire les techniques que vous apprendrez, 1. Comment lire une image
2. Comment créer des barres de piste
3. Comment ajuster la valeur de la teinte, de la saturation et de la valeur d'une image à l'aide des barres de suivi
4. Et puis il y aura votre sortie finale
Vous pouvez regarder la vidéo de la sortie que j'ai jointe ci-dessous.
Alors, commençons
Fournitures
- Python 3
- bibliothèque openCV
- bibliothèque numpy
Étape 1: Importer des bibliothèques
![Importation de bibliothèques Importation de bibliothèques](https://i.howwhatproduce.com/images/007/image-18629-3-j.webp)
L'image est de ferrari jaune comme indiqué et nous allons programmer pour extraire uniquement la couleur jaune de cette image
La première étape sera d'importer nos bibliothèques
1. Y compris la bibliothèque openCV. Il s'appelle cv2 en python
2. Y compris la bibliothèque numpy en tant que np. Le "as" nous permet de nous numpy comme np donc pas besoin d'écrire numpy encore et encore
Étape 2: Création de barres de piste
![Création de barres de piste Création de barres de piste](https://i.howwhatproduce.com/images/007/image-18629-4-j.webp)
Les barres de piste sont créées pour ajuster la valeur de la teinte, de la saturation et de la valeur dans une image.
cv2.namedWindow("TrackBars") Cette ligne de code est utilisée pour créer une nouvelle fenêtre de sortie et le nom de la fenêtre est donné sous forme de TrackBars (Vous pouvez donner n'importe quel nom que vous voulez)
cv2.resizeWindow("TrackBars", 600, 250) Cette fonction permet de redimensionner une fenêtre. "TrackBars" correspond à la fenêtre que vous souhaitez redimensionner car je voulais redimensionner la fenêtre TrackBars. J'ai écrit ce nom. Suivi de deux nombres entiers. Ces deux nombres entiers sont la largeur et la hauteur. Vous pouvez jouer avec ces deux nombres pour changer la taille
Étape 3: Création de TrackBars pour la teinte, la saturation et la valeur
![Création de TrackBars pour la teinte, la saturation et la valeur Création de TrackBars pour la teinte, la saturation et la valeur](https://i.howwhatproduce.com/images/007/image-18629-5-j.webp)
![Création de TrackBars pour la teinte, la saturation et la valeur Création de TrackBars pour la teinte, la saturation et la valeur](https://i.howwhatproduce.com/images/007/image-18629-6-j.webp)
Nous allons maintenant créer un total de 6 TrackBars pour la teinte, la saturation et la valeur. Chacun en aura deux, c'est-à-dire 1 pour le minimum et 1 pour le maximum. Nous utiliserons la fonction createTrackbar d'openCV. Nous allons d'abord voir la syntaxe de cette fonction.
cv2.createTrackbar("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Cela peut être déroutant, mais ne vous inquiétez pas, nous passerons par chaque étape. Gardez une chose à l'esprit que dans openCV, les valeurs de teinte sont de 179, la saturation est de 255 et la valeur est de 255
1. Création de TrackBar pour hue min:
cv2.createTrackbar("Hue min", "TrackBars", 0, 179, vide)
Dans cette Hue min est le nom de la barre de piste, TrackBars est la fenêtre principale, 0 est la position sur laquelle notre curseur sera et 179 est la plage signifie que le silder passera de 0 à 179
2. Création de TrackBar pour hue max:
cv2.createTrackbar("Hue max", "TrackBars", 179, 179, vide)
Dans cette Hue max est le nom de la barre de piste, TrackBars est la fenêtre principale, 179 est la position sur laquelle notre curseur sera et 179 est la plage maximale signifie que le silder passera de 179-0
3. De même, répétez les étapes pour sat min, sat max, val min et val max comme indiqué dans l'image
L'image avec le fond blanc est l'image de sortie. Voici à quoi ressembleront vos barres de piste
Étape 4: Comment lire et redimensionner l'image
![Comment lire et redimensionner une image Comment lire et redimensionner une image](https://i.howwhatproduce.com/images/007/image-18629-7-j.webp)
cv2.imread() vous permet de lire l'image. Une pensée importante que vous devez garder à l'esprit que l'emplacement de votre image doit être dans le même dossier où le programme est enregistré. Nous mettrons une boucle while car elle devrait s'exécuter jusqu'à ce qu'elle lise l'image ou nous pouvons dire jusqu'à ce que la condition soit vraie
img = cv2.imread("ferrari.jpg")
- En cela, j'ai créé un nom de variable " img " dans lequel je stocke l'image
- Dans cv2.imread, écrivez le nom de l'image avec son extension entre guillemets doubles
Pour redimensionner une image, nous utiliserons la fonction cv2.resize. Cette partie est facultative, si vous souhaitez redimensionner alors vous pouvez utiliser cette fonction
Dans cv2.resize, écrivez d'abord le nom de la variable dans laquelle l'image est stockée, puis sa largeur et sa hauteur
Étape 5: Lecture des valeurs de la barre de piste pour l'appliquer à une image
![Lecture des valeurs de la barre de piste pour l'appliquer à une image Lecture des valeurs de la barre de piste pour l'appliquer à une image](https://i.howwhatproduce.com/images/007/image-18629-8-j.webp)
![Lecture des valeurs de la barre de piste pour l'appliquer à une image Lecture des valeurs de la barre de piste pour l'appliquer à une image](https://i.howwhatproduce.com/images/007/image-18629-9-j.webp)
Ok, maintenant nous allons lire les valeurs de la barre de suivi afin de pouvoir l'appliquer à notre image. Nous obtiendrons les valeurs en utilisant la fonction cv2.getTrackbarPos().
Commençons par cette partie…
h_min = cv2.getTrackbarPos("Hue min", "TrackBars")
Dans la déclaration ci-dessus, je crée un nom de variable h_min dans lequel je stockerai la valeur de Hue min. Donc, à l'intérieur de cv2.getTrackbarPos, le 1er argument serait " Hue min " car je veux des valeurs de hue min (l'orthographe doit être exactement la même que celle de la fonction createTrackbar) et le 2ème argument serait le nom de la fenêtre de la barre de suivi à laquelle il appartient.
- Répétez le même processus pour h_max et le reste des fonctions, comme indiqué dans l'image ci-dessus, puis imprimez toutes les valeurs à l'aide de print()
- La sortie est montrée dans la deuxième image. Il imprime les valeurs de h_min, h_max, s_min, s_max, v_min, s_max
Étape 6: Affichage de l'image et définition des limites supérieure et inférieure
![Affichage de l'image et réglage des limites supérieure et inférieure Affichage de l'image et réglage des limites supérieure et inférieure](https://i.howwhatproduce.com/images/007/image-18629-10-j.webp)
Maintenant que nous avons les valeurs min et max de la teinte, de la saturation et de la valeur, nous utiliserons cette valeur pour filtrer l'image afin que nous puissions la sortie de couleur particulière d'une image.
Nous allons créer un masque pour cela en utilisant la fonction cv2.inRange. Et avant cela, nous définirons les limites supérieure et inférieure de teinte, de saturation et de valeur
Créez donc un nom de variable "inférieur" et en utilisant la fonction de tableau numpy, définissez la plage de min pour les 3 comme suit
inférieur = np.array([h_min, s_min, v_min])
Répétez la même étape pour le haut
supérieur = np.array([h_max, s_max, v_max])
Maintenant, nous allons créer un masque comme suit
mask = cv2.inRange(resize, lower, upper) À l'intérieur de cv2.inRang, le 1er argument serait la variable dans laquelle mon image finale est stockée, le 2ème argument sera la limite inférieure et le 3ème argument serait la limite supérieure.
Nous allons maintenant afficher l'image principale et le masque. Pour afficher, nous utiliserons la fonction cv2.imshow()
cv2.imshow("img", redimensionner) Ceci permet d'afficher l'image principale. Le 1er argument est le nom de la fenêtre que vous pouvez donner à n'importe quel nom et le 2ème argument est la variable dans laquelle est stockée mon image principale que vous souhaitez afficher.
De même, répétez les étapes pour le masque
cv2.imshow("Sortie", masque)
Étape 7: maintenant la dernière étape
![Maintenant la dernière étape Maintenant la dernière étape](https://i.howwhatproduce.com/images/007/image-18629-11-j.webp)
Dans cette dernière étape, nous extrairons la couleur de la voiture et de l'affichage.
J'ai créé un résultat de nom de variable. Encore une fois, vous pouvez donner le nom que vous voulez. Nous utiliserons donc la fonction cv2.bitwise_and() dans laquelle nous ajouterons des images ensemble et créerons une nouvelle image. Et partout où les pixels des deux images sont présents, cela sera considéré comme oui ou " 1 ".
result = cv2.bitwise_and(redimensionner, redimensionner, masque=masque)
- En cela le 1er argument sera notre image
- Le 2ème argument sera également notre image d'origine mais suivi du masque appliqué que nous avons créé auparavant
- Et enfin, affichez simplement le résultat en utilisant la fonction imshow
Il suffit de copier coller cette dernière étape c'est juste un délai et vous pouvez quitter la fenêtre de sortie en appuyant sur " a " sur le clavier
Étape 8: Résultats finaux
Conseillé:
Traitement d'image avec le Raspberry Pi : Installation d'OpenCV et séparation des couleurs d'image : 4 étapes
![Traitement d'image avec le Raspberry Pi : Installation d'OpenCV et séparation des couleurs d'image : 4 étapes Traitement d'image avec le Raspberry Pi : Installation d'OpenCV et séparation des couleurs d'image : 4 étapes](https://i.howwhatproduce.com/images/005/image-14151-j.webp)
Traitement d'image avec le Raspberry Pi : Installation d'OpenCV et de la séparation des couleurs d'image : Cet article est le premier de plusieurs tutoriels de traitement d'image à suivre. Nous regardons de plus près les pixels qui composent une image, apprenons à installer OpenCV sur le Raspberry Pi et nous écrivons également des scripts de test pour capturer une image et aussi c
Détection simple des couleurs à l'aide d'OpenCV : 6 étapes
![Détection simple des couleurs à l'aide d'OpenCV : 6 étapes Détection simple des couleurs à l'aide d'OpenCV : 6 étapes](https://i.howwhatproduce.com/images/007/image-18589-j.webp)
Détection de couleur simple à l'aide d'OpenCV : Salut ! Aujourd'hui, je vais montrer une méthode simple pour détecter une couleur à partir d'une vidéo en direct à l'aide d'OpenCV et de python. Fondamentalement, je vais simplement tester que la couleur requise est présente ou non dans le cadre d'arrière-plan et à l'aide des modules OpenCV, je vais masquer cette région et
Robot de suivi des couleurs basé sur une roue omnidirectionnelle et OpenCV : 6 étapes
![Robot de suivi des couleurs basé sur une roue omnidirectionnelle et OpenCV : 6 étapes Robot de suivi des couleurs basé sur une roue omnidirectionnelle et OpenCV : 6 étapes](https://i.howwhatproduce.com/images/011/image-30732-j.webp)
Robot de suivi des couleurs basé sur une roue omnidirectionnelle et OpenCV : j'utilise un châssis de roue omnidirectionnel pour implémenter mon suivi des couleurs, et j'utilise un logiciel mobile appelé OpenCVBot. Merci aux développeurs de logiciels ici, merci. OpenCV Bot détecte ou suit en fait tout objet en temps réel via le traitement d'image
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes
![Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes](https://i.howwhatproduce.com/images/002/image-3460-60-j.webp)
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : Dans ce projet, nous utilisons un potentiomètre (POT) pour changer les couleurs d'une LED à l'aide d'un ATTINY85. Quelques définitions - Un potentiomètre est un appareil doté d'un petit mécanisme à vis/tournant qui, lorsqu'il est tourné, produit différentes résistances électriques. Vous pouvez
Détection des couleurs à l'aide de LED RVB : 4 étapes
![Détection des couleurs à l'aide de LED RVB : 4 étapes Détection des couleurs à l'aide de LED RVB : 4 étapes](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10967374-color-detection-using-rgb-led-4-steps-j.webp)
Détection des couleurs à l'aide de LED RVB : Avez-vous déjà voulu un moyen automatisé de détecter la couleur d'un objet ? En projetant une lumière d'une certaine couleur sur l'objet et en regardant la quantité de lumière réfléchie, vous pouvez savoir de quelle couleur est l'objet. Par exemple, si vous allumez un feu rouge o