📜  Python OpenCV – getTrackbarPos()函数

📅  最后修改于: 2022-05-13 01:54:42.368000             🧑  作者: Mango

Python OpenCV – getTrackbarPos()函数

getTrackbarPos() 是Python OpenCV 中的函数,它返回指定轨迹栏的当前位置。它需要两个参数。第一个是轨迹栏名称,第二个是窗口名称,它是轨迹栏的父级。返回轨迹栏位置。

注意: [Only for Qt Backend] 这里,如果 trackbar 连接到控制面板,则 winname 可以为空或 Null。

下面是实现:

Python3
# Demo Trackbar
# importing cv2 and numpy
import cv2
import numpy
 
def nothing(x):
    pass
 
# Creating a window with black image
img = numpy.zeros((300, 512, 3), numpy.uint8)
cv2.namedWindow('image')
 
# creating trackbars for red color change
cv2.createTrackbar('R', 'image', 0, 255, nothing)
 
# creating trackbars for Green color change
cv2.createTrackbar('G', 'image', 0, 255, nothing)
 
# creating trackbars for Blue color change
cv2.createTrackbar('B', 'image', 0, 255, nothing)
 
while(True):
    # show image
    cv2.imshow('image', img)
 
    # for button pressing and changing
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break
 
    # get current positions of all Three trackbars
    r = cv2.getTrackbarPos('R', 'image')
    g = cv2.getTrackbarPos('G', 'image')
    b = cv2.getTrackbarPos('B', 'image')
 
    # display color mixture
    img[:] = [b, g, r]
 
# close the window
cv2.destroyAllWindows()


输出:

当我们移动任何 R、G 或 B 的滑块时,其对应的 getTrackbarPos() 值会发生变化,并返回特定滑块的位置。通过它我们改变下面框的颜色。您可以在我们传递给 getTrackbarPos() 的参数的代码中看到。我们以 r 为例,我们将 'R' 和 'image' 传递给函数。这里“R”是我们创建的 Trackbar 名称,“image”是我们运行代码时打开的窗口的名称。基本上,它是轨迹栏的父窗口。这会将滑块的位置作为整数值返回,我们将其保存在 r 中。我们使用此返回值“r”、“g”和“b”创建颜色框。