Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich mit OpenCV Python einen Schieberegler für die RGB-Farbpalette?
In OpenCV können Sie die Funktion cv2.reateTrackbar() verwenden, um eine Trackleiste zu erstellen. Um auf den Wert der ausgewählten Trackbar-Position zuzugreifen, verwenden wir die Funktion cv2.getTrackbarPos().
Mit diesen beiden Funktionen erstellen wir ein Fenster, das eine Tracking-Leiste für die Farben R, G, B und ein Farbfenster zur Anzeige der ausgewählten Farbe enthält. Durch Ändern der Position der Spurleiste ändert sich die RGB-Farbe zwischen 0 und 255. Nachfolgend finden Sie die Syntax dieser beiden Funktionen.
cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func) cv2.getTrackbarPos(trackbar_name, window_name)
trackbar_name – Dies ist der Name der Trackbar. Dieser Name wird verwendet, um auf den Positionswert der Trackleiste zuzugreifen.
Fenstername – Dies ist der Name des Fensters, an das die Tracking-Leiste angehängt ist.
default_value – Der für die Trackbar festgelegte Standardwert.
max_value – Der Maximalwert der Trackleiste.
callback_func – Funktion, die ausgeführt wird, wenn sich der Wert der Spurleiste ändert.
Um eine RGB-Palette Spurleiste zu erstellen, können Sie die unten aufgeführten Schritte ausführen -
Der erste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren. Die erforderlichen Python-Bibliotheken sind OpenCV und NumPy. Stellen Sie sicher, dass Sie sie installiert haben.
import cv2 import numpy as np
Als nächstes definieren Sie eine Rückruffunktion. Die Trackbar-Position wird als Standardparameter verwendet. Wir definieren diese Funktion so, dass sie nichts tut.
def nothing(x): pass
Definieren Sie das schwarze Bild und erstellen Sie ein Fenster namens Trackbar-Farbpalette. Die Spurleiste und die Farben werden in diesem Fenster angezeigt.
img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE)
Erstellen Sie eine Spurleiste für Farbänderungen mit allen fünf Parametern. Die Werte der Spurleiste liegen zwischen 0 und 255.
cv2.createTrackbar('R',window_name,0,255,nothing) cv2.createTrackbar('G',window_name,0,255,nothing) cv2.createTrackbar('B',window_name,0,255,nothing)
Erhalten Sie die aktuelle Trackbar-Position für alle drei RGB-Farben.
r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name)
Aktualisiertes Farbbildfenster mit den oben genannten Farben.
img[:] = [b,g,r]
Zeigt nun die Farbe des ausgewählten Spurleistenwerts im Farbfenster an.
while(True): cv2.imshow(window_name,img) k = cv2.waitKey(1) & 0xFF if k == ord('q'): break
Im folgenden Python-Programm erstellen wir ein Fenster als Palette. Wir haben drei Spurleisten für die Farben R, G und B erstellt. Schieben Sie den Schieberegler, um die entsprechende Farbe im Farbfenster anzuzeigen.
# import required libraries import cv2 import numpy as np def nothing(x): pass # Create a black image, and the window img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) # create trackbars for color change cv2.createTrackbar('R',window_name,0,255,nothing) cv2.createTrackbar('G',window_name,0,255,nothing) cv2.createTrackbar('B',window_name,0,255,nothing) while(True): cv2.imshow(window_name,img) k = cv2.waitKey(1) & 0xFF if k == ord('q'): break # get current positions of four trackbars r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name) img[:] = [b,g,r] cv2.destroyAllWindows()
Wenn Sie das obige Programm ausführen, wird das folgende Ausgabefenster angezeigt. Um das Ausgabefenster zu schließen, drücken Sie die Schaltfläche „q“.
Der Standardwert für alle drei Spurleisten ist Null und die Farbe des Fensters ist Schwarz. Schieben Sie den Schieberegler, um die entsprechende Farbe im Farbfenster anzuzeigen.
Beispiel 2
Umschalttaste.
Wir haben vier Spurleisten erstellt, drei für die Farben R, G, B und eine für die Schaltfläche „Umschalten“.Wenn die Schaltfläche Schalter
aufEIN steht, werden nur die Farben im Farbfenster angezeigt. Schieben Sie den Schieberegler und die entsprechende Farbe wird im Farbfenster angezeigt.
import cv2 import numpy as np def nothing(x): pass # Create a black image, a window img = np.zeros((300,650,3), np.uint8) window_name = 'Trackbar Color Palette' cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) # create trackbars for color change cv2.createTrackbar('R',window_name,0,255,nothing) cv2.createTrackbar('G',window_name,0,255,nothing) cv2.createTrackbar('B',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 r = cv2.getTrackbarPos('R',window_name) g = cv2.getTrackbarPos('G',window_name) b = cv2.getTrackbarPos('B',window_name) s = cv2.getTrackbarPos("switch",window_name) if s == 0: img[:] = 0 else: img[:] = [b,g,r] cv2.destroyAllWindows()AusgabeWenn Sie das obige Programm ausführen, wird das folgende Ausgabefenster angezeigt. Um das
q“.
Der Standardwert für alle Spurleisten ist 0
. Die Fensterfarbe ist schwarz. Wenn Sie den Schalter einschalten (wählen Sie1) und den RGB-Farbregler auf den gewünschten Wert schieben, zeigt das Farbfenster die entsprechende Farbe an. Wenn Sie den Schieberegler verschieben, während der Schalter ausgeschaltet ist (auf 0 eingestellt), ändert sich die Farbe des Fensters nicht. Es bleibt so wie es ist (d. h. schwarz).
Das obige ist der detaillierte Inhalt vonWie erstelle ich mit OpenCV Python einen Schieberegler für die RGB-Farbpalette?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!