Python学习笔记第七十九天(OpenCV轨迹栏)

2024-01-09 19:31:49

OpenCV轨迹栏

cv.getTrackbarPoscv.createTrackbar 是 OpenCV 库中用于创建和获取跟踪条位置的函数。这些函数通常用于在视频处理或图像处理应用程序中创建用户界面,以允许用户交互地调整某些参数或控制某些功能。cv.getTrackbarPoscv.createTrackbar在滑动条在许多计算机视觉任务中很有用,特别是当你想要手动设置某个参数值时。

cv.createTrackbar

cv.createTrackbar这个函数用于在窗口上创建一个滑动条。
参数说明:

  • trackbarname:滑动条的名称。
  • winname:滑动条所属的窗口名称。
  • val:滑动条的初始位置。
  • maxval:滑动条的最大位置值。
  • onChange:一个回调函数,当滑动条位置改变时被调用。
import cv2

# 创建窗口
cv2.namedWindow('Trackbar Window')

# 创建跟踪条,参数包括:
# 1. 窗口名称
# 2. 跟踪条名称
# 3. 默认位置(0-100)
# 4. 最大位置(0-100)
# 5. 回调函数(可选)
trackbar = cv2.createTrackbar('Trackbar', 'Trackbar Window', 0, 100, trackbar_callback)

# 主循环,等待用户操作
while True:
    # 在这里添加其他代码,例如读取图像或视频帧等
    pass

cv.getTrackbarPos

在上面的例子中,你可以看到 cv2.createTrackbar 创建了一个名为 “Trackbar” 的跟踪条。你可以使用 cv2.getTrackbarPos 来获取当前跟踪条的位置:
参数说明:

  • trackbarname:滑动条的名称。
  • winname:滑动条所属的窗口名称。
def trackbar_callback(x):
    # 在这里添加当跟踪条位置改变时要执行的代码
    pass

# ...(省略上面的代码)...

# 在回调函数中获取当前跟踪条位置
current_pos = cv2.getTrackbarPos('Trackbar', 'Trackbar Window')

在这个例子中,trackbar_callback 是一个可选的回调函数,它会在用户移动跟踪条时被调用。在这个回调函数中,你可以使用 cv2.getTrackbarPos 来获取当前跟踪条的位置。

两者合并运用

import cv2 as cv  
import numpy as np  
  
# 初始化一个窗口  
window_name = 'Trackbar Demo'  
cv.namedWindow(window_name, cv.WINDOW_NORMAL)  
  
# 创建一个滑动条,位置在 (10, 50),名字为 'Slider',默认值是 0,范围是 0 到 100  
trackbar = cv.createTrackbar('Slider', window_name, 0, 100, None)  
  
while True:  
    # 获取滑动条的当前位置  
    position = cv.getTrackbarPos(trackbar)  
    print(f"Slider position: {position}")  
      
    # 为了可视化滑动条的效果,我们可以根据其位置改变图像的某些属性。这里我们简单地用一个灰度图像来演示。  
    image = np.zeros((500, 500), dtype=np.uint8)  
    cv.rectangle(image, (250, 0), (250 + int(position), 500), (255, 255, 255), -1)  
    cv.imshow(window_name, image)  
    key = cv.waitKey(1) & 0xFF  # 按任意键退出循环  
    if key == ord('q'):  # 按 'q' 退出程序  
        break  
  
cv.destroyAllWindows()

后记

今天学习的是Python OpenCV轨迹栏学会了吗。 今天学习内容总结一下:

  1. cv.createTrackbar
  2. cv.getTrackbarPos

文章来源:https://blog.csdn.net/qq_54129105/article/details/135426721
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。