当前位置: 首页 > article >正文

OpenCV高级图形用户界面(16)设置一个已经创建的滚动条的最大值函数setTrackbarMax()的使用

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

设置滚动条的最大位置。

该函数设置指定窗口中指定滚动条的最大位置。

在OpenCV中,cv::setTrackbarMax函数用于设置一个已经创建的滚动条的最大值。这个函数允许你在创建滚动条之后动态地改变它的最大值。

注意
「仅限 Qt 后端」如果轨迹条是附加到控制面板上的,那么窗口名称(winname)可以为空。

函数原型


void cv::setTrackbarMax	
(
	const String & 	trackbarname,
	const String & 	winname,
	int 	maxval 
)	

参数

  • 参数trackbarname:滚动条的名称。
  • 参数winname:作为滚动条父级的窗口名称。
  • 参数maxval:新的最大位置。

代码示例


#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;

// 回调函数 - 在此示例中不执行任何操作
void onTrackbar( int, void* ) {}

int main()
{
    // 创建一个空白图像
    Mat img = Mat::zeros( 300, 500, CV_8UC3 );

    // 创建一个名为 "Control Panel" 的窗口
    namedWindow( "Control Panel", WINDOW_AUTOSIZE );

    // 创建一个滚动条
    int trackbar_pos            = 0;    // 初始位置
    const int initial_max_value = 100;  // 初始最大值

    // 创建滚动条
    createTrackbar( "Value", "Control Panel", &trackbar_pos, initial_max_value, onTrackbar );

    // 设置滚动条的最大值
    setTrackbarMax( "Value", "Control Panel", 200 );  // 设置最大值为 200

    // 无限循环,直到用户按下 'q' 键
    while ( true )
    {
        // 获取滚动条的当前位置
        int pos = getTrackbarPos( "Value", "Control Panel" );

        // 在图像上绘制当前的值
        putText( img, std::to_string( pos ), Point( 10, 50 ), FONT_HERSHEY_SIMPLEX, 1, Scalar( 255, 255, 255 ), 2 );

        // 显示图像
        imshow( "Control Panel", img );

        // 等待用户按键
        int key = waitKey( 1 );
        if ( key == 'q' )
        {  // 如果用户按下 'q' 键,退出循环
            break;
        }
    }

    // 关闭所有窗口
    destroyAllWindows();

    return 0;
}

运行结果

在这里插入图片描述


http://www.kler.cn/news/363875.html

相关文章:

  • Vue2、Element中实现Enter模拟Tab,实现切换下一个框的效果
  • 高薪、高含金量、高性价比的“三高”证书——PMP证书
  • QML----Webengineview点击网页上的下载没反应,下载文件
  • 音质最好的麦克风有哪些?领夹麦克风哪个品牌好?麦克风十大品牌
  • Linux笔记之文件查找和搜索命令which,find,locate,whereis总结
  • 文通车牌识别相机在工地称重应用中的卓越表现
  • 【跑酷项目02】实现触发并在前方克隆金币
  • 编辑器加载与AB包加载组合
  • SQL注入原理、类型、危害与防御
  • 使用cmdline-tools安装Android SDK与NDK
  • 驱动开发系列20 - Linux Graphics Xorg-server 介绍
  • 在 Python 中使用 Tensorflow 时出错:google.protobuf
  • 汽车票预订系统:SpringBoot技术应用
  • OpenIPC开源FPV之Ardupilot配置
  • 爬虫实战练习
  • 第T7周:咖啡豆识别
  • 多模态大语言模型(MLLM)-Blip3/xGen-MM
  • 姿态估计(一)——过程记录与问题记录
  • Spring Boot 3 声明式接口:能否完全替代 OpenFeign?
  • 写在RAGFlow开源2万星标之际
  • vue3使用element-plus手动更改url后is-active和菜单的focus颜色不同步问题
  • JavaFx -- chapter03(多线程网络通信)
  • Linux——K8S的pod的调度
  • 类的创建、构造器、实例属性、实例方法
  • Java while语句练习 C语言的函数递归
  • node入门与npm