Comment créer un curseur de palette de couleurs HSV à l'aide d'OpenCV Python ?

WBOY
Libérer: 2023-08-18 15:01:30
avant
1595 Les gens l'ont consulté

Pour créer un curseur pour la palette de couleurs HSV (Teinte, Saturation et Valeur) dans OpenCV, nous utilisons deux fonctions différentes. Ces fonctions sont cv2.reateTrackbar() et cv2.getTrackbarPos().

  • Utilisez la fonction cv2.reateTrackbar() pour créer une barre de curseur, tandis que la fonction cv2.getTrackbarPos() est utilisée pour accéder à la valeur de la position du curseur sélectionnée.

  • À l'aide de ces deux fonctions, nous créons un slider contenant les couleurs H, S, V et une fenêtre de couleur pour afficher la couleur sélectionnée. En changeant la position du curseur, nous pouvons sélectionner une valeur de couleur spécifique.

  • H va de 0 à 179, tandis que S et V vont de 0 à 255.

Syntaxe

cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func)
cv2.getTrackbarPos(trackbar_name, window_name)
Copier après la connexion

Paramètres :

  • trackbar_name − C'est le nom du curseur. Ce nom est utilisé pour accéder à la valeur de position du curseur.

  • window_name - C'est le nom de la fenêtre attachée au curseur.

  • default_value - Définissez la valeur par défaut du curseur.

  • max_value - La valeur maximale du curseur.

  • callback_func - Fonction exécutée lorsque la valeur du curseur change.

Étapes

Pour créer un curseur en tant que Palette de couleurs HSV, vous pouvez suivre ces étapes :

La première étape consiste à importer les bibliothèques requises. Les bibliothèques Python requises sont OpenCV et NumPy. Veuillez vous assurer de les avoir installés.

import cv2
import numpy as np
Copier après la connexion

Définissez ensuite une fonction de rappel. Il prend la position du curseur comme paramètre par défaut. Nous définissons cette fonction pour ne rien faire.

def nothing(x):
   pass
Copier après la connexion

Définissez l'image noire et créez une fenêtre appelée HSV Color Palette. Des barres de piste et des couleurs apparaîtront dans cette fenêtre.

img = np.zeros((300,650,3), np.uint8)
window_name = 'Trackbar Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)
Copier après la connexion

Créez un curseur de changement de couleur, en passant les cinq paramètres

cv2.createTrackbar('H',window_name,0,179,nothing)
cv2.createTrackbar('S',window_name,0,255,nothing)
cv2.createTrackbar('V',window_name,0,255,nothing)
Copier après la connexion

Obtenez la position actuelle du curseur pour les trois couleurs HSV.

h = cv2.getTrackbarPos('H',window_name)
s = cv2.getTrackbarPos('S',window_name)
v = cv2.getTrackbarPos('V',window_name)
Copier après la connexion

Fenêtre d'image couleur mise à jour avec les couleurs ci-dessus. Et convertissez la couleur de l'image en BGR.

img[:] = [h,s,v]
img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR)
Copier après la connexion

Affiche désormais la couleur de la valeur de la barre de suivi sélectionnée dans la fenêtre d'image couleur.

while(True):
   cv2.imshow(window_name,img)
   k = cv2.waitKey(1) & 0xFF
   if k == ord('q'):
      break
Copier après la connexion

Exemple 1

Dans ce programme Python, nous créons une fenêtre sous forme de palette de couleurs. Nous avons créé trois curseurs pour contrôler les couleurs R, V et B. Faites glisser le curseur et vous obtiendrez l’affichage couleur correspondant dans la fenêtre couleur.

# import required libraries
import cv2
import numpy as np

def nothing(x):
   pass
   
# Create a black image, a window
img = np.zeros((300,650,3), np.uint8)
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
window_name = 'HSV Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)

# create trackbars for color change
cv2.createTrackbar('H',window_name,0,179,nothing)
cv2.createTrackbar('S',window_name,0,255,nothing)
cv2.createTrackbar('V',window_name,0,255,nothing)
while(True):
   cv2.imshow(window_name,img)
key = cv2.waitKey(1) & 0xFF
   if key == ord('q'):
      break
      
   # get current positions of four trackbars
   h = cv2.getTrackbarPos('H',window_name)
   s = cv2.getTrackbarPos('S',window_name)
   v = cv2.getTrackbarPos('V',window_name)
   img[:] = [h,s,v]
   img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR)
cv2.destroyAllWindows()
Copier après la connexion

Output

Lorsque vous exécutez le programme ci-dessus, il affichera la fenêtre de sortie suivante. Pour fermer la fenêtre de sortie, appuyez sur le bouton « q ».

Comment créer un curseur de palette de couleurs HSV à l'aide d'OpenCV Python ?

Par défaut, les valeurs des trois curseurs sont 0 , et la couleur de la fenêtre est noire. Faites glisser le curseur et vous verrez la couleur correspondante dans la fenêtre de couleur. La traduction chinoise de

Exemple 2

est :

Exemple 2

Dans ce programme, nous créons une fenêtre sous la forme d'une palette de couleurs HSV, qui contient un switchbouton. Nous avons créé quatre curseurs, trois pour le bouton HSV Color et un pour le bouton Switch.

Lorsque le bouton interrupteur est allumé , seules les couleurs de l'image couleur sont affichées. Faites glisser le curseur et vous obtiendrez l’affichage couleur correspondant dans la fenêtre couleur.

import cv2
import numpy as np

def nothing(x):
   pass
   
# Create a black image, a window
img = np.zeros((300,650,3), np.uint8)
img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
window_name = 'HSV Color Palette'
cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)

# create trackbars for color change
cv2.createTrackbar('H',window_name,0,179,nothing)
cv2.createTrackbar('S',window_name,0,255,nothing)
cv2.createTrackbar('V',window_name,0,255,nothing)

# create switch for ON/OFF functionality
# switch = '0 : OFF \n1 : ON'
cv2.createTrackbar('switch', window_name,0,1,nothing)
while(True):
   cv2.imshow(window_name,img)
   key = cv2.waitKey(1) & 0xFF
   if key == ord('q'):
      break
      
   # get current positions of four trackbars
   h = cv2.getTrackbarPos('H',window_name)
   s = cv2.getTrackbarPos('S',window_name)
   v = cv2.getTrackbarPos('V',window_name)
   sw = cv2.getTrackbarPos('switch',window_name)
   if sw == 0:
      img[:] = 0
   else:
      img[:] = [h,s,v]
      img = cv2.cvtColor(img, cv2.COLOR_HSV2BGR)
cv2.destroyAllWindows()
Copier après la connexion

Output

Lorsque vous exécutez le programme ci-dessus, il affichera la fenêtre de sortie suivante. Pour fermer la fenêtre de sortie, appuyez sur le bouton « q ».

Comment créer un curseur de palette de couleurs HSV à l'aide d'OpenCV Python ?

Par défaut, tous les curseurs ont une valeur de 0. La couleur de la fenêtre est noire. Lorsque vous allumez l'interrupteur (sélectionné comme 1) et faites glisser le curseur de couleur HSV sur la valeur souhaitée, la couleur de la fenêtre correspondra à la valeur définie. Pour des couleurs vives, sélectionnez la valeur maximale des curseurs S et V, puis faites glisser le curseur H.

Lorsque l'interrupteur est éteint, faire glisser le curseur ne changera rien

Si vous faites glisser le curseur lorsque l'interrupteur est éteint (réglé sur 0), alors la couleur de la fenêtre ne changera pas. Il restera tel quel (c'est-à-dire 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!

source:tutorialspoint.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal