Maison >développement back-end >Tutoriel Python >Comment trouver la valeur HSV d'une couleur en utilisant OpenCV Python ?

Comment trouver la valeur HSV d'une couleur en utilisant OpenCV Python ?

王林
王林avant
2023-08-19 14:25:14938parcourir

如何使用OpenCV Python找到一种颜色的HSV值?

Pour trouver la valeur HSV d'une couleur, nous pouvons utiliser la conversion de l'espace colorimétrique de BGR en HSV. Tout d'abord, nous définissons les valeurs de couleur comme numpy.ndarray au format BGR, puis les convertissons en espace HSV.

Nous pouvons également trouver les limites inférieures et supérieures de la valeur HSV sous la forme [H-10, 100, 100] et [H+10, 255, 255] respectivement. peut être utilisé pour suivre un objet d'une couleur particulière.

Pour trouver la valeur HSV d'une couleur, suivez ces étapes :

Étapes

Importez les bibliothèques requises. Dans tous les exemples Python suivants, les bibliothèques Python requises sont OpenCV et NumPy Assurez-vous de les avoir déjà installées.

.
import cv2
import numpy as np

Définissez un numpy.ndarray pour la couleur, dtype=np.uint8.

green = np.uint8([[[0, 255, 0]]])

Convertissez la couleur définie ci-dessus en HSV.

hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)

Imprimez les valeurs de couleur.

print("HSV of Green:", hsvGreen)

Regardons quelques exemples de programmes pour le comprendre clairement.

Exemple 1

Dans cet exemple, nous trouvons la HSV valeur de la couleur verte. La BGR valeur du vert est [0,255,0].

.
# import required libraries
import numpy as np
import cv2
# define a numpy.ndarray for the color
# here insert the bgr values which you want to convert to hsv
green = np.uint8([[[0, 255, 0]]])

# convert the color to HSV
hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)

# display the color values
print("BGR of Green:", green)
print("HSV of Green:", hsvGreen)

# Compute the lower and upper limits
lowerLimit = hsvGreen[0][0][0] - 10, 100, 100
upperLimit = hsvGreen[0][0][0] + 10, 255, 255

# display the lower and upper limits
print("Lower Limit:",lowerLimit)
print("Upper Limit", upperLimit)

Sortie

Lorsque vous exécutez le programme Python ci-dessus, il produira le résultat suivant

BGR of Green: [[[ 0 255 0]]] 
HSV of Green: [[[ 60 255 255]]] 
Lower Limit: (50, 100, 100) 
Upper Limit (70, 255, 255)
La traduction chinoise de

Exemple 2

est :

Exemple 2

Dans cet exemple, on retrouve la HSV valeur d'une couleur dont la BGR valeur est [106,76,89].

# import required libraries
import numpy as np
import cv2
green = np.uint8([[[0, 255, 0]]])

# convert the color to HSV
hsvGreen = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)

# here insert the bgr values which you want to convert to hsv
bgr = np.uint8([[[106,76,89]]])
hsv = cv2.cvtColor(green, cv2.COLOR_BGR2HSV)
print("BGR Value:", bgr)
print("HSV Value:", hsv)

# compute the lower and upper limits
lowerLimit = hsvGreen[0][0][0] - 10, 100, 100
upperLimit = hsvGreen[0][0][0] + 10, 255, 255

# display the lower and upper limits
print("Lower Limit:",lowerLimit)
print("Upper Limit", upperLimit)

Sortie

Lorsque vous exécutez le programme Python ci-dessus, il produira le résultat suivant

BGR Value: [[[76 76 89]]] 
HSV Value: [[[ 60 255 255]]] 
Lower Limit: (50, 100, 100) 
Upper Limit (70, 255, 255)

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer