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

Python学习笔记第七十九天

OpenCV轨迹栏

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

cv.createTrackbar

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

参数说明:

  • trackbarname:滑动条的名称。
  • winname:滑动条所属的窗口名称。
  • val:滑动条的初始位置。
  • maxval:滑动条的最大位置值。
  • onChange:一个回调函数,当滑动条位置改变时被调用。
python 复制代码
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:滑动条所属的窗口名称。
python 复制代码
def trackbar_callback(x):
    # 在这里添加当跟踪条位置改变时要执行的代码
    pass

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

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

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

两者合并运用

python 复制代码
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
相关推荐
惊讶的猫4 小时前
LSTM论文解读
开发语言·python
潇冉沐晴5 小时前
div2 1052 个人补题笔记
笔记
测试老哥5 小时前
软件测试之单元测试知识总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
buvsvdp50059ac5 小时前
如何在VSCode中设置Python解释器?
ide·vscode·python
立志成为大牛的小牛5 小时前
数据结构——四十一、分块查找(索引顺序查找)(王道408)
数据结构·学习·程序人生·考研·算法
njxiejing6 小时前
Python进度条工具tqdm的安装与使用
开发语言·python
蒙奇D索大6 小时前
【计算机网络】[特殊字符] 408高频考点 | 数据链路层组帧:从字符计数到违规编码,一文学透四大实现方法
网络·笔记·学习·计算机网络·考研
遇印记6 小时前
蓝桥java蜗牛
java·学习·蓝桥杯