OpenCV cvtColor

Salman Mehmood 15 février 2024
OpenCV cvtColor

Cet article vise à apprendre ce que fait la méthode cvtColor() et comment utiliser cette méthode pour convertir l’image rgb en une image hsv dans OpenCV. Nous discutons également de l’utilité de l’image hsv et de la raison pour laquelle nous devons l’utiliser.

Utilisez la méthode cvtColor() pour créer une image HSV dans OpenCV

Ici, nous avons ajouté une image qui montre la différence entre l’image RGB et l’image HSV. Chaque fois que vous considérez une image dans la couleur RGB, chaque pixel a trois valeurs représentant les couleurs rouge, verte et bleue.

Image RVB et HSV

De même, dans l’image du modèle de couleur HSV, chaque pixel est représenté avec les trois valeurs teinte, saturation et valeur. La teinte représente l’angle, la saturation représente la saturation de la couleur et la valeur représente l’intensité de la couleur.

Ainsi, le modèle de couleur HSV fonctionne. Lorsque nous convertissons une image RGB en image HSV, chaque valeur de pixel est convertie au format de saturation et de valeur de teinte; nous appelons ce modèle de couleur HSV.

Voyons comment convertir ce modèle de couleur RGB en image de modèle de couleur HSV.

Tout d’abord, nous importons les packages opencv et numpy, et dans la ligne suivante, nous essayons d’accéder à notre caméra en utilisant VideoCapture() et en passant zéro, il accédera donc à la caméra principale sur ce système. .

Nous les stockons dans l’objet V, quels que soient les flux vidéo que nous recevons.

import numpy as np
import cv2

V = cv2.VideoCapture(0)

Une fois que nous avons capturé la vidéo de la caméra, nous allons parcourir chaque image à l’intérieur de cette vidéo. Nous devons maintenant lire chaque image de la capture vidéo, et cette image n’est rien d’autre que la seule image de notre vidéo qui est sous la forme du tableau numpy.

RET, F = V.read()
cv2.imshow("BGR Frame", F)

Il s’agit de la trame d’origine, et nous allons convertir la trame en HSV en utilisant la méthode cvtColor(). Cette méthode apporte les différents modèles de couleurs aux utilisateurs, et parmi eux, la méthode la plus courante est COLOR_BGR2HSV.

Il faut passer les deux paramètres dans le cvtColor() ; l’un est notre image originale, et le second est le type de conversion que nous voulons faire sur cette image ou un cadre. Nous avons passé la méthode COLOR_BGR2HSV en paramètre, ce qui signifie que nous disons à cvtColor() de convertir cette couleur d’image de BGR en HSV.

import numpy as np
import cv2

V = cv2.VideoCapture(0)

while True:
    RET, F = V.read()
    cv2.imshow("BGR Frame", F)
    HSV = cv2.cvtColor(F, cv2.COLOR_BGR2HSV)
    cv2.imshow("HSV Frame", HSV)
    if cv2.waitKey(1) == ord("q"):
        break
V.release()
cv2.destroyAllWindows()

Nous pouvons voir que notre programme est en cours d’exécution, et sur le côté gauche, nous mettons le contenu original auquel nous accédons depuis la caméra au format BGR.

Sur le côté droit, nous pouvons voir l’image de la valeur de saturation de la teinte, et dans cette partie, les différentes nuances de couleur sont incluses dans la gamme de couleurs spécifique.

Utiliser la méthode cvtColor pour créer une image HSV dans OpenCV

Parlons de la raison pour laquelle nous devons convertir cette image au format HSV et de l’avantage de convertir l’image BGR au format HSV ?

Il est utile dans tout projet de vision par ordinateur ou d’apprentissage automatique car chaque zone est représentée avec d’autres nuances de couleur. Si vous êtes simplement intéressé par l’objet marqué d’une couleur spécifique, dans ce cas, vous pouvez ignorer la zone de couleur restante et extraire la partie spécifique de la zone de couleur.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Article connexe - Python OpenCV