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.
cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func) cv2.getTrackbarPos(trackbar_name, window_name)
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.
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
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
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)
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)
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)
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)
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
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()
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 ».
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
est :
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()
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 ».
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!