1、学习目标
(1)如何将轨迹栏绑定到OpenCV窗口
(2)使用Trackbar作为调色板,
(3)使用Trackbar开关将彩色图像更改为灰度图像
可以通过OpenCV轨道栏获得用户输入。
2、使用函数方法
cv.createTrackbar(‘B’, ‘image’, 0, 255, nothing)
cv.getTrackbarPos(‘B’, ‘image’)
3、程序
(1)
结果
(2)
结果
(3)
结果
(4)
结果
函数讲解:
(1)轨迹栏作用:
(a)
窗口有一个显示颜色的窗口和三个轨道栏,用于指定B,G,R颜色。滑动轨迹栏并相应地窗口颜色更改。默认情况下,初始颜色将设置为黑色。
(b)
将其用作按钮或开关
默认情况下,OpenCV没有按钮功能。
使用轨迹栏创建了一个开关,其中应用程序仅在开关打开时有效,否则屏幕始终为黑色。
(2)
创建一个轨迹栏并将其附加到指定的窗口。
cv.CreateTrackbar(trackbarName, windowName, value, count, onChange) →
None
参数
trackbarname - 创建的跟踪栏的名称。
winname - 将用作创建的跟踪栏的父级的窗口的名称。
value - 指向整数变量的可选指针,该变量的值反映滑块的位置。创建后,滑块位置由此变量定义。
count - 滑块的最大位置。最小位置始终为0。
onChange - 指向每次滑块更改位置时要调用的函数的指针。该函数应该原型为 ,其中第一个参数是轨迹栏位置,第二个参数是用户数据(参见下一个参数)。如果回调是NULL指针,则不会调用任何回调,而只会 更新回调 。void Foo(int,void*);value
userdata - 按原样传递给回调的用户数据。它可用于处理轨迹栏事件而无需使用全局变量。
第一个参数是轨道栏名称,
第二个参数是它所附加的窗口名称,
第三个参数是默认值,
第四个参数是最大值,
第五个参数是执行的回调函数每次轨迹栏值都会发生变化。
回调函数始终具有默认参数,即轨迹栏位置。
程序中的例子:
cv.createTrackbar('B', 'image', 0, 255, nothing)
(3)
cv2.getTrackbarPos( trackbarname,winname ) →RETVAL
参数
trackbarname - 轨迹栏的名称。
winname - 作为轨迹栏父级的窗口的名称。
程序中的例子
cv.getTrackbarPos('B', 'image')