- 操作系统:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 编程语言:C++11
算法描述
该函数设置指定窗口中指定轨迹条的位置。
注意
 [仅 Qt 后端] 如果轨迹条附加到控制面板,则 winname 可以为空。
函数原型
void cv::setTrackbarPos
(
	const String & 	trackbarname,
	const String & 	winname,
	int 	pos 
)	
参数
- 参数trackbarname:轨迹条的名称。
- 参数winname:轨迹条所在窗口的名称。
- 参数pos:新的位置。
代码示例
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
// 回调函数 - 在此示例中不执行任何操作
void onTrackbar( int pos, void* ) {}
int main()
{
    // 创建一个空白图像
    Mat img = Mat::zeros( 300, 500, CV_8UC3 );
    // 创建一个名为 "Control Panel" 的窗口
    namedWindow( "Control Panel", WINDOW_AUTOSIZE );
    // 定义轨迹条的最大值
    const int max_value = 100;
    // 初始化轨迹条的位置
    int trackbar_pos = 50;  // 初始位置
    // 创建轨迹条
    createTrackbar( "Value", "Control Panel", &trackbar_pos, max_value, onTrackbar );
    // 设置轨迹条的位置
    const int new_position = 75;  // 新的位置
    setTrackbarPos( "Value", "Control Panel", new_position );
    // 主循环
    while ( true )
    {
        // 获取轨迹条的当前位置
        int pos = getTrackbarPos( "Value", "Control Panel" );
        // 在图像上绘制当前的值
        putText( img, 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;
}
