滑动条作为调色板
<h1>目标</h1>
<p>学习将滑动条绑定到OpenCV窗口
您将学习这些函数:cv.getTrackbarPos()、cv.createTrackbar()等。</p>
<h1>代码演示</h1>
<p>在这里,我们将创建一个简单的应用程序,它显示您指定的颜色。您有一个显示颜色的窗口和三个指定B、G、R颜色的跟踪条。滑动跟踪条,相应的窗口颜色就会发生变化。默认情况下,初始颜色将设置为黑色。</p>
<p>gettrackbarpos()函数的第一个参数是滑动条的名称,第二个参数是它所附加的窗口名称,第三个参数是默认值,第四个参数是最大值,第五个参数是回调函数,它在每次滑动值更改时执行。回调函数总是有一个默认参数,即滑动位置。在我们的例子中,函数什么也不做,所以我们只是传递。</p>
<p>滑动条的另一个重要应用是将其用作按钮或开关。默认情况下,OpenCV没有按钮功能。所以你可以使用滑动来获得这样的功能。在我们的应用程序中,我们创建了一个开关,只有在开关打开时应用程序才能工作,否则屏幕总是黑色的。</p>
<pre><code class="language-python">import numpy as np
import cv2 as cv
def nothing(x):
pass
# Create a black image, a window
img = np.zeros((300,512,3), np.uint8)
cv.namedWindow('image')
# create trackbars for color change
cv.createTrackbar('R','image',0,255,nothing)
cv.createTrackbar('G','image',0,255,nothing)
cv.createTrackbar('B','image',0,255,nothing)
# create switch for ON/OFF functionality
switch = '0 : OFF \n1 : ON'
cv.createTrackbar(switch, 'image',0,1,nothing)
while(1):
cv.imshow('image',img)
k = cv.waitKey(1) & 0xFF
if k == 27:
break
# get current positions of four trackbars
r = cv.getTrackbarPos('R','image')
g = cv.getTrackbarPos('G','image')
b = cv.getTrackbarPos('B','image')
s = cv.getTrackbarPos(switch,'image')
if s == 0:
img[:] = 0
else:
img[:] = [b,g,r]
cv.destroyAllWindows()</code></pre>
<p>应用程序的截图如下:</p>
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/63900274f07b375b4d957acadd9ffcdd?showdoc=.jpg" alt="" /></p>
<h1>练习</h1>
<p>使用轨迹条创建一个可调颜色和画笔半径的油漆应用程序。有关绘图,请参阅以前的鼠标处理教程。</p>