OpenCV  4.1.0
Open Source Computer Vision
Trackbar as the Color Palette

Goal

Code Demo

Here we will create a simple application which shows the color you specify. You have a window which shows the color and three trackbars to specify each of B,G,R colors. You slide the trackbar and correspondingly window color changes. By default, initial color will be set to Black.

For cv.getTrackbarPos() function, first argument is the trackbar name, second one is the window name to which it is attached, third argument is the default value, fourth one is the maximum value and fifth one is the callback function which is executed everytime trackbar value changes. The callback function always has a default argument which is the trackbar position. In our case, function does nothing, so we simply pass.

Another important application of trackbar is to use it as a button or switch. OpenCV, by default, doesn't have button functionality. So you can use trackbar to get such functionality. In our application, we have created one switch in which application works only if switch is ON, otherwise screen is always black.

1 import numpy as np
2 import cv2 as cv
3 
4 def nothing(x):
5  pass
6 
7 # Create a black image, a window
8 img = np.zeros((300,512,3), np.uint8)
9 cv.namedWindow('image')
10 
11 # create trackbars for color change
12 cv.createTrackbar('R','image',0,255,nothing)
13 
14 cv.createTrackbar('G','image',0,255,nothing)
15 cv.createTrackbar('B','image',0,255,nothing)
16 
17 # create switch for ON/OFF functionality
18 switch = '0 : OFF \n1 : ON'
19 cv.createTrackbar(switch, 'image',0,1,nothing)
20 
21 while(1):
22  cv.imshow('image',img)
23  k = cv.waitKey(1) & 0xFF
24  if k == 27:
25  break
26 
27  # get current positions of four trackbars
28  r = cv.getTrackbarPos('R','image')
29  g = cv.getTrackbarPos('G','image')
30  b = cv.getTrackbarPos('B','image')
31  s = cv.getTrackbarPos(switch,'image')
32 
33  if s == 0:
34  img[:] = 0
35  else:
36  img[:] = [b,g,r]
37 

The screenshot of the application looks like below :

trackbar_screenshot.jpg
image

Exercises

  1. Create a Paint application with adjustable colors and brush radius using trackbars. For drawing, refer previous tutorial on mouse handling.