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
相关推荐
ReedFoley4 分钟前
【笔记】动手学Ollama 第七章 应用案例1 搭建本地AI Copilot编程助手
人工智能·笔记·copilot
ygy.白茶41 分钟前
线性回归入门级
人工智能·python·机器学习
长安即是故里1 小时前
Maxwell学习笔记
笔记·学习
刘同学Python学习日记2 小时前
Python 办公自动化实战:Excel 批量处理 + 自动发邮件
python
mit6.8242 小时前
[Vid-LLM] 功能分类体系 | 视频如何被“观看“ | LLM的主要作用
人工智能·python
青铜发条2 小时前
【python】python进阶——logging日志模块
python
★YUI★3 小时前
学习制作记录(选项UI以及存档系统)8.24
学习·游戏·ui·unity·c#
咸甜适中3 小时前
rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十四)垂直滚动条
笔记·学习·rust·egui
无规则ai3 小时前
动手学深度学习(pytorch版):第六章节—卷积神经网络(1)从全连接层到卷积
人工智能·pytorch·python·深度学习·cnn
努力敲代码的小盆友3 小时前
[自用笔记]上传本地项目至github
笔记·github