zoukankan      html  css  js  c++  java
  • opencv滑动条createTrackbar

    //IDE:VS2019
    
    #include<opencv2/opencv.hpp>
    #include<iostream>
    
    void onChangeTrackBar(int pos, void* usrdata) {
        // 强制类型转换
        cv::Mat src = *(cv::Mat*)(usrdata);
        cv::Mat dst;
        cv::threshold(src, dst, pos, 255, 0);
        cv::imshow("滑动条", dst);
    }
    
    
    int main(int argc, char** argv) {
    
        cv::Mat img = cv::imread("D:/bb/tu1/laohu.jpg", 0);  //读入图像,以灰度图形式读入
        cv::namedWindow("滑动条");
        cv::imshow("滑动条", img);
        int posTrackBar = 0; //用来保存滑块位置
        cv::createTrackbar("pos", "滑动条", &posTrackBar, 255, onChangeTrackBar, &img);
        //第一个参数:conststring& trackbarname,轨迹条的名字,用来表示创建的轨迹条
        //第二个参数:conststring& winname,窗口的名字,表示这个轨迹条会依附到哪个窗口上
        //第三个参数:int* value,一个指向整形的指针,用来保存滑块的位置。创建时,滑块的初始位置就是该变量当前的值
        //第四个参数:int count,表示滑块可以达到的最大位置的值。滑块最小位置的值始终为0
        //第五个参数:TrackbarCallback onChange,默认值为0,指向回调函数的指针。每次滑块位置改变时,这个函数都会进行回调。且这个函数的原型必须为void XXXX(int, void*);其中第一个参数是轨迹条的位置,第二个参数是用户数据。如果回调函数是NULL指针,则表示没回调函数的调用,仅第三个参数value变化
        //第六个参数:void userdata,默认值0。这个参数是用户传递给回调函数的数据,用来处理轨迹条事件。如果使用的第三个参数value是全局变量,完全可以不去管这个userdata参数
    
    
        cv::waitKey();
        return 0;
    }
    createTrackbar这个函数在Qt Creator中我总是出错,请明白的告诉我  我的手机:13116140007

  • 相关阅读:
    第十三周进度
    第十二周进度
    单词统计
    Vue——初级小项目(小清单)
    Vue——修饰符
    vue——表单输入绑定
    vue——计算属性和监听器
    vue——指令系统介绍
    面试笔试
    python之路——二分查找算法
  • 原文地址:https://www.cnblogs.com/liming19680104/p/15433137.html
Copyright © 2011-2022 走看看