前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【OpenCV-Python】滑动条的创建和使用(createTrackbar())

【OpenCV-Python】滑动条的创建和使用(createTrackbar())

作者头像
用户9925864
发布2022-07-27 08:48:01
1.9K0
发布2022-07-27 08:48:01
举报
文章被收录于专栏:算法工程师的学习日志

今天在做项目的时候,遇到一个参数的选择,需要实时看参数变化对结果影响,查阅资料看到OpenCV的滑动条,故分享一篇文章

滑动条(Trackbar)是一种可以动态调节参数的工具,它依附于窗口而存在。

createTrackbar() 这个函数用于创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。

函数功能:创建trackbar并添加到指定窗口

函数原型:

intcvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, intcount, CvTrackbarCallback on_change );

函数说明:

第一个参数表示该trackbar的名称。

第二个参数表示窗口名称,该trackbar将显示在这个窗口内。

第三个参数表示创建时滑块的位置。

第四个参数表示滑块位置的最大值,最小值固定为0。

第五个参数表示回调函数。当滑块位置有变化时,系统会调用该回调函数。

注:被创建的trackbar默认显示在指定窗口的顶端,可以通过函数cvGetTrackbarPos()来获取trackbar显示的位置信息,以及通过函数cvSetTrackbarPos()来重新设置trackbar的显示位置。

CvTrackbarCallback

函数功能:cvCreateTrackbar()函数所使用的回调函数

函数定义:

typedef void (CV_CDECL *CvTrackbarCallback)(int pos)

函数说明:

当trackbar位置被改变的时,系统会调用这个回调函数,并将参数pos设置为表示trackbar位置的数值。

在这里通过一个Canny算子参数作为例子分享。

代码语言:javascript
复制
import cv2


def CannyThreshold(lowThreshold):
    detected_edges = cv2.GaussianBlur(gray, (3, 3), 0)
    detected_edges = cv2.Canny(detected_edges,
                               lowThreshold,
                               lowThreshold * ratio,
                               apertureSize=kernel_size)
    dst = cv2.bitwise_and(img, img, mask=detected_edges)  
    cv2.imshow('canny demo', dst)


lowThreshold = 0
max_lowThreshold = 100
ratio = 6
kernel_size = 3

img = cv2.imread('./0.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('canny demo')
cv2.createTrackbar('Min threshold', 'canny demo', lowThreshold, max_lowThreshold, CannyThreshold)
CannyThreshold(0) 
if cv2.waitKey(0) == 27:
    cv2.destroyAllWindows()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CvTrackbarCallback
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档