- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
设置滚动条的最大位置。
该函数设置指定窗口中指定滚动条的最大位置。
在OpenCV中,cv::setTrackbarMax函数用于设置一个已经创建的滚动条的最大值。这个函数允许你在创建滚动条之后动态地改变它的最大值。
注意
「仅限 Qt 后端」如果轨迹条是附加到控制面板上的,那么窗口名称(winname)可以为空。
函数原型
cpp
void cv::setTrackbarMax
(
const String & trackbarname,
const String & winname,
int maxval
)
参数
- 参数trackbarname:滚动条的名称。
- 参数winname:作为滚动条父级的窗口名称。
- 参数maxval:新的最大位置。
代码示例
cpp
#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;
}