【OpenCV】创建1个或者多个滑动条 | createTrackbar

函数说明

createTrackbar()函数的函数原型为:

CV_EXPORTS int createTrackbar(const String& trackbarname, const String& winname,int value, int count,TrackbarCallback onChange = 0, void userdata = 0);

参数1:滚动条名称;

参数2:窗口名称

参数3:滚动条初始位置

参数4:滚动条最大值;

参数5:回调函数名字

参数6:用户传给回调函数的数据,用来处理轨迹条事件。

【OpenCV】创建1个或者多个滑动条 | createTrackbar

示例

createTrackbar("变量1:", "图片处理窗口", &pos, maxValue, onChangeTrackBar, &image);

1个滑动条示例

// 回调函数
void onChangeTrackBar(int pos, void* usrdata)
{
    // 传递用户数据(你也可以全局变量加个src)
    Mat src = *(Mat*)(usrdata);
    // 定义目标对象
    Mat dst;

    // 二值化
    threshold(src, dst, pos, 255, 0);

    imshow("二值化", dst);
}

void track_bar_test() {
        // 设置最大值
    int maxValue = 255;

    //读入图像
    Mat src = imread("C:\\Users\\yl\\Desktop\\hakase.png", 1);

    //新建窗口
    namedWindow("二值化"); // 这几个窗口名都要一样,不然你控制这个 那个窗口变换,好奇怪喔。

    //创建trackbar,把isrc作为数据传进回调函数中,要用引用传递
    createTrackbar("阈值", "二值化", &pos1, maxValue, onChangeTrackBar, &src);

    waitKey(0);
    destroyAllWindows();
}

多个滑动条示例

// 如果想用两个控制条,必须用全局变量(因为回调函数的滑块位置,只有1个参数《不够用》)
int pos1 = 0;
int pos2 = 0;

// 回调函数
void onChangeTrackBar(int, void* usrdata)
{
    // 传递用户数据(你也可以全局变量加个src)
    Mat src = *(Mat*)(usrdata);
    // 定义目标对象
    Mat dst;

    // 二值化
    threshold(src, dst, pos1, 255, 0);
    add(dst, Scalar(pos2, pos2, pos2), dst);

    imshow("二值化", dst);
}

void track_bar_test() {
    int maxValue = 255;
    int maxValue2 = 255;

    //读入图像
    Mat src = imread("C:\\Users\\yl\\Desktop\\hakase.png", 1);

    ////新建窗口
    namedWindow("二值化"); // 这几个窗口名都要一样,不然你控制这个 那个窗口变换,好奇怪喔。

    //创建trackbar,我们把img作为数据传进回调函数中
    createTrackbar("阈值", "二值化", &pos1, maxValue, onChangeTrackBar, &src);
    createTrackbar("反色", "二值化", &pos2, maxValue2, onChangeTrackBar, &src);
    waitKey(0);
    destroyAllWindows();
}

 其他参考

下面文章太长,但是我嫖了两眼,觉得应该还行,在这存一下

csdn :OpenCV滑动条

知乎:计算机视觉OpenCV学习笔记(五):滑动条的使用:cv2.creatTrackbar()

给TA充电
共{{data.count}}人
人已充电
AEAE文章AE表达式

【AE表达式案例】螺旋线怎么做

2023-3-13 12:57:02

OpenCV

【OpenCV】疑难杂症:Failed to load OpenH264 library

2022-2-24 3:07:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索