Pour extraire un objet d'une couleur spécifique d'une image, vous pouvez utiliser la fonction cv.inRange(). Dans cet exemple, nous allons extraire un objet bleu de l'image.
Définir la plage de couleur
Tout d'abord, définissez les limites inférieures et supérieures de la couleur bleue dans l'espace de couleur HSV :
## Le bleu est représenté en HSV avec une teinte d'environ 240 degrés sur 360.
## La plage de teintes dans OpenCV-HSV est de 0 à 180, pour stocker la valeur sur 8 bits.
## Ainsi, le bleu est représenté en OpenCV-HSV avec une valeur de H d'environ 240 / 2 = 120.
## Pour détecter correctement le bleu, les valeurs suivantes peuvent être choisies :
blue_lower = np.array([100, 150, 0], np.uint8)
blue_upper = np.array([140, 255, 255], np.uint8)
Appliquer un seuil à l'image
Appliquez un seuil à l'image HSV pour ne conserver que les couleurs bleues :
## Masque des couleurs bleues
blue_mask = cv.inRange(hsv_image, blue_lower, blue_upper)
Appliquer le masque
Appliquez le masque à l'image d'origine pour extraire l'objet bleu :
## Utiliser le masque pour extraire l'objet bleu
blue_object = cv.bitwise_and(image, image, mask=blue_mask)
Affichez l'image d'origine et l'objet bleu extrait :
## Enregistrer l'image dans le fichier spécifié
cv.imwrite('blue_object.jpg', blue_object)