Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich mit OpenCV Python einen Schieberegler für die RGB-Farbpalette?

Wie erstelle ich mit OpenCV Python einen Schieberegler für die RGB-Farbpalette?

WBOY
WBOYnach vorne
2023-08-30 16:33:01668Durchsuche

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.

Grammatik

cv2.createTrackbar(trackbar_name, window_name, default_value, max_value, callback_func)
cv2.getTrackbarPos(trackbar_name, window_name)

Parameter

  • 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.

Schritte

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

Beispiel 1

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()

Ausgabe

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“.

如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?

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

In diesem Programm erstellen wir ein Fenster als Palette mit einer

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

auf

EIN 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()
Ausgabe

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 Spurleisten ist 如何使用OpenCV Python创建一个RGB颜色调色板的滑动条?0

. Die Fensterfarbe ist schwarz. Wenn Sie den Schalter einschalten (wählen Sie

1) 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen