python opencv cv2.createTrackbar()方法 getTrackbarPos()方法 (创建窗口滑动条和获取滑动条当前值)

from cv2.__init__.py

def createTrackbar(trackbarName, windowName, value, count, onChange): # real signature unknown; restored from __doc__
    """ createTrackbar(trackbarName, windowName, value, count, onChange) -> None """
    pass

def getTrackbarPos(trackbarname, winname): # real signature unknown; restored from __doc__
    """
    getTrackbarPos(trackbarname, winname) -> retval
    .   @brief Returns the trackbar position.
    返回轨迹栏位置。
    .   
    .   The function returns the current position of the specified trackbar.
    该函数返回指定轨迹栏的当前位置。
    .   
    .   @note
    .   
    .   [__Qt Backend Only__] winname can be empty if the trackbar is attached to the control
    .   panel.
    [____仅QT后端__]:如果跟踪栏连接到控制面板,则winname可以为空。
    .   
    .   @param trackbarname Name of the trackbar.
    跟踪栏的名称。
    .   @param winname Name of the window that is the parent of the trackbar.
    作为跟踪栏父级的窗口的名称。
    """
    pass

滑动条(Trackbar)是一种可以动态调节参数的工具,它依附于窗口而存在。由于OpenCV中没有“按钮”功能,我们还可以用仅含0/1的滑动条来实现按钮的按下和弹起(开启和关闭)效果。

createTrackbar() 这个函数用于创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。

该函数的参数有:
createTrackbar(const String& trackbarname, const String& winname, int *value, int count, TrackbarCallback onChange = 0, void *userdata = 0)

具体含义为:

  • trackbarname:跟踪栏名称,创建的轨迹栏的名称。
  • Winname:窗口的名字,表示这个轨迹条会依附到哪个窗口上,即对应namedWindow()创建窗口时填的窗口名。
  • value:指向整数变量的可选指针,该变量的值反映滑块的初始位置。
  • count:表示滑块可以达到的最大位置的值,最小位置始终为0。
  • onChange:指向每次滑块更改位置时要调用的函数的指针,有默认值0。此函数的原型应为void XXX (int, void *); ,其中第一个参数是轨迹栏位置,第二个参数是用户数据(请参阅下一个参数)。如果回调是NULL指针,则不调用任何回调,而仅更新值。
  • userdata:传递给回调的用户数据,有默认值0。它可以用于处理轨迹栏事件,而无需使用全局变量。如果使用的第三个参数value实参是全局变量的话,完全可以不去管这个userdata参数。

对于 getTrackbarPos(trackbarname, winname) 函数,它也有多个参数(但是python opencv4.4.1只有俩参数。。。):

  • 第一个参数是Tarckbar 名称;
  • 第二个参数是它附加到的窗口名称;
  • 第三个参数是默认值;
  • 第四个参数是最大值;
  • 第五个是执行的回调函数每次跟踪栏值更改。回调函数始终具有默认参数,即轨迹栏位置。

参考文章:【OpenCV-Python】滑动条的创建和使用(createTrackbar())

发布了747 篇原创文章 · 获赞 28 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Dontla/article/details/103937960