轨迹栏作为调色板
作者|OpenCV-Python Tutorials
编译|Vincent
来源|OpenCV-Python Tutorials
目标
- 了解将轨迹栏固定到OpenCV窗口
- 您将学习以下功能:cv.getTrackbarPos,cv.createTrackbar等。
代码演示
在这里,我们将创建一个简单的应用程序,以显示您指定的颜色。您有一个显示颜色的窗口,以及三个用于指定B、G、R颜色的跟踪栏。滑动轨迹栏,并相应地更改窗口颜色。默认情况下,初始颜色将设置为黑色。
对于cv.getTrackbarPos()函数,第一个参数是轨迹栏名称,第二个参数是它附加到的窗口名称,第三个参数是默认值,第四个参数是最大值,第五个是执行的回调函数每次跟踪栏值更改。回调函数始终具有默认参数,即轨迹栏位置。在我们的例子中,函数什么都不做,所以我们简单地通过。
轨迹栏的另一个重要应用是将其用作按钮或开关。默认情况下,OpenCV不具有按钮功能。因此,您可以使用轨迹栏获得此类功能。在我们的应用程序中,我们创建了一个开关,只有在该开关为ON的情况下,该应用程序才能在其中运行,否则屏幕始终为黑色。
import numpy as npimport cv2 as cvdef nothing(x):pass# 创建一个黑色的图像,一个窗口img = np.zeros((300,512,3), np.uint8)cv.namedWindow('image')# 创建颜色变化的轨迹栏cv.createTrackbar('R','image',0,255,nothing)cv.createTrackbar('G','image',0,255,nothing)cv.createTrackbar('B','image',0,255,nothing)# 为 ON/OFF 功能创建开关switch = '0 : OFF \n1 : ON'cv.createTrackbar(switch, 'image',0,1,nothing)while(1):cv.imshow('image',img)k = cv.waitKey(1) & 0xFFif k == 27:break# 得到四条轨迹的当前位置r = cv.getTrackbarPos('R','image')g = cv.getTrackbarPos('G','image')b = cv.getTrackbarPos('B','image')s = cv.getTrackbarPos(switch,'image')if s == 0:img[:] = 0else:img[:] = [b,g,r]cv.destroyAllWindows()
该应用程序的屏幕截图如下所示:

练习题
- 使用轨迹栏创建颜色和画笔半径可调的Paint应用程序。有关绘制的信息,请参阅有关鼠标处理的先前教程。
