【OpenCV-Python】cvui 之 trackbar

CVUI 之 trackbar

cvui::trackbar() 渲染一个 trackbar, 可以左右拖动或点击对数字进行增加或减少的调整。

在这里插入图片描述

不使用离散间隔

在这里插入图片描述

使用离散间隔

在这里插入图片描述

Python

import numpy as np
import cv2
import cvui

def trackbar_test():
    WINDOW_NAME = 'Trackbar-Test'

    # 创建画布
    frame = np.zeros((400, 600, 3), np.uint8)

    # 读取图像
    cvui.init(WINDOW_NAME)

    # 
    cntvalue = [1.0]
  
    threshold = [128]

    while True:
        # 画布填色
        frame[:] = (128, 100, 128)

        '''
        > theWhere: 画布
        > theX: 绘制的 X
        > theY: 绘制的 Y
        > theValue: 值
        > theStep: 间隔
        > theFormat: 格式化的值或数字。例如,% d或 % .2f。
        > theFontScale: 字体大小
        > theInsideColor: 颜色
        '''
        cvui.counter(frame, 10, 10, cntvalue, 2, "%d")
      
      
        '''
        > **参数**
        > 发生改变时,返回 `True`;
        > *theWhere*: 画布
        > *theX*: 绘制的 x 
        > *theY*: 绘制的 y
        > *theWidth*: 宽度
        > *theValue*: 用户可以修改的值,任何数值型类型都可以
        > *theMin*: 允许的最小值
        > *theMax*: 允许的最大值
        > *theSegments*: 分段数
        > *theLabelFormat*: 格式化的值,默认为 `%.1Lf` 表示小数,
        > *theOptions*: 定制选项,可以用 `|` 扩展多个
        >   * `TRACKBAR_HIDE_SEGMENT_LABELS`: 显示最小最大值,不显示当前值
        >   * `TRACKBAR_HIDE_STEP_SCALE`: 不显示指示线
        >   * `TRACKBAR_DISCRETE`: 是否使用离散值 `theDiscreteStep` ;
        >   * `TRACKBAR_HIDE_MIN_MAX_LABELS`: 不显示最小最大值
        >   * `TRACKBAR_HIDE_VALUE_LABEL`: 不显示当前值
        >   * `TRACKBAR_HIDE_LABELS`: 不显示标签
        > *theDiscreteStep*: 使用离散的间隔,使用离散的操作看起来不是很平滑。
        '''
        cvui.trackbar(frame, 15, 180, 500, threshold, 10, 256, 3, "%d")
      
        # 显示
        cvui.imshow(WINDOW_NAME, frame)

        # ESC 退出
        if cv2.waitKey(20) == 27:
            break


if __name__ == '__main__':
    trackbar_test()

CPP

原型

template <typename T>
bool trackbar(cv::Mat& theWhere, int theX, int theY, int theWidth, T *theValue, T theMin, T theMax, int theSegments = 1, const char *theLabelFormat = "%.1Lf", unsigned int theOptions = 0, T theDiscreteStep = 1, double theFontScale = DEFAULT_FONT_SCALE);

参数
发生改变时,返回 True
theWhere: 画布
theX: 绘制的 x
theY: 绘制的 y
theWidth: 宽度
theValue: 用户可以修改的值,任何数值型类型都可以
theMin: 允许的最小值
theMax: 允许的最大值
theSegments: 分段数
theLabelFormat: 格式化的值,默认为 %.1Lf 表示小数,
theOptions: 定制选项,可以用 | 扩展多个

  • TRACKBAR_HIDE_SEGMENT_LABELS: 显示最小最大值,不显示当前值
  • TRACKBAR_HIDE_STEP_SCALE: 不显示指示线
  • TRACKBAR_DISCRETE: 是否使用离散值 theDiscreteStep ;
  • TRACKBAR_HIDE_MIN_MAX_LABELS: 不显示最小最大值
  • TRACKBAR_HIDE_VALUE_LABEL: 不显示当前值
  • TRACKBAR_HIDE_LABELS: 不显示标签
    theDiscreteStep: 使用离散的间隔,使用离散的操作看起来不是很平滑。

用例

double value = 12.4;
cvui::trackbar(frame, 40, 30, 220, &value, (double)10.0, (double)15.0);

【参考】

cvui-trackbar

猜你喜欢

转载自blog.csdn.net/zhoujinwang/article/details/130009680