Maison  >  Article  >  développement back-end  >  Comment détecter les objets verts dans une image à l'aide des valeurs de seuil OpenCV ?

Comment détecter les objets verts dans une image à l'aide des valeurs de seuil OpenCV ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-04 08:17:02945parcourir

How to Detect Green Objects in an Image Using OpenCV Threshold Values?

Détecter les objets verts avec des valeurs de seuil dans OpenCV

La détection d'objets de couleur spécifiques est une tâche courante dans le traitement d'image. Cette question montre comment définir des valeurs de seuil pour isoler les objets de couleur verte dans une image à l'aide d'OpenCV.

Définition de la valeur de seuil

Pour détecter les objets verts, vous pouvez définir un plage de valeurs de seuil dans l’espace colorimétrique Teinte (H), Saturation (S) et Valeur (V). La valeur H détermine la teinte de la couleur, tandis que S et V indiquent respectivement la saturation et la luminosité.

Méthode 1 : Espace colorimétrique HSV

Une approche consiste à utiliser le Espace colorimétrique HSV, qui fournit une représentation des couleurs plus précise que RVB. Pour le vert, vous pouvez spécifier une plage telle que :

  • H : 36-86
  • S : 25-255
  • V : 25-255

Méthode 2 : cv2.inRange

Une autre méthode consiste à utiliser la fonction cv2.inRange(), qui prend deux arguments : un seuil de limite inférieur et une limite supérieure seuil. Par exemple, pour détecter le vert :

  • Limite inférieure : (36, 25, 25)
  • Limite supérieure : (70, 255, 255)

Exemple d'implémentation

Le code Python suivant illustre cela en utilisant OpenCV :

<code class="python">import cv2
import numpy as np

# Read image
img = cv2.imread("image.jpg")

# Convert to HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Define threshold values
lower_bound = (36, 25, 25)
upper_bound = (70, 255, 255)

# Create mask
mask = cv2.inRange(hsv, lower_bound, upper_bound)

# Extract green objects
green = np.zeros_like(img, np.uint8)
imask = mask > 0
green[imask] = img[imask]

# Display
cv2.imshow("Green Objects", green)
cv2.waitKey(0)</code>

Ce code montre comment définir des valeurs de seuil pour isoler les objets verts d'une image d'entrée, présentant l'image résultante avec uniquement les régions vertes identifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn