Maison >développement back-end >Tutoriel Python >Comment définir des valeurs seuils pour la détection d'objets verts dans des images naturelles avec Python OpenCV ?

Comment définir des valeurs seuils pour la détection d'objets verts dans des images naturelles avec Python OpenCV ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-02 21:04:30750parcourir

How to Define Threshold Values for Green Object Detection in Natural Images with Python OpenCV?

Définir des valeurs seuils pour la détection d'objets verts dans des images naturelles avec Python OpenCV

Dans les applications de vision par ordinateur, isoler des couleurs spécifiques d'une image peut être crucial pour la détection et l’analyse des objets. Dans les environnements naturels, définir une valeur seuil qui détecte avec précision les objets verts pose un défi.

Pour définir une valeur seuil pour la détection de la couleur verte, une approche courante consiste à convertir l'image en teinte, saturation, valeur (HSV). espace colorimétrique, qui offre un moyen plus intuitif de spécifier les plages de couleurs.

Méthode 1 : Utilisation de la plage de couleurs HSV

Une stratégie consiste à identifier la plage HSV qui correspond à la couleur verte souhaitée. Par exemple, vous pouvez choisir une plage telle que (40, 40, 40) ~ (70, 255, 255) en HSV pour définir les objets verts.

Méthode 2 : Utilisation de cv2.inRange()

Une autre méthode consiste à utiliser la fonction cv2.inRange() d'OpenCV. Cette fonction prend deux arguments :

  • Limite inférieure : la valeur HSV en dessous de laquelle les pixels doivent être considérés comme non verts.
  • Limite supérieure : la valeur HSV au-dessus de laquelle les pixels doivent être considérés comme verts. .

Exemple : Détection de tournesols verts

Dans l'exemple suivant, nous détectons des pétales de tournesol verts dans une image :

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

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

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

# Define HSV range for green (36, 25, 25) ~ (70, 255, 255)
mask = cv2.inRange(hsv, (36, 25, 25), (70, 255, 255))

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

# Save
cv2.imwrite("green.png", green)</code>

En convertissant l'image en HSV et en appliquant les valeurs seuils, nous pouvons isoler efficacement les régions vertes de l'image tout en convertissant les régions non vertes en une autre couleur (par exemple, le noir).

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