Python学习笔记第七十九天(OpenCV轨迹栏)
2024-01-09 19:31:49
Python学习笔记第七十九天
OpenCV轨迹栏
cv.getTrackbarPos
和 cv.createTrackbar
是 OpenCV 库中用于创建和获取跟踪条位置的函数。这些函数通常用于在视频处理或图像处理应用程序中创建用户界面,以允许用户交互地调整某些参数或控制某些功能。cv.getTrackbarPos
和 cv.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轨迹栏学会了吗。 今天学习内容总结一下:
- cv.createTrackbar
- cv.getTrackbarPos
文章来源:https://blog.csdn.net/qq_54129105/article/details/135426721
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!