目录
  • 什么是滑动条
  • 创建滑动条
    • 参考代码
  • 获取当前滑动条位置
    • 参考代码
  • 总结

    什么是滑动条

    滑动条是 OpenCV 动态调节参数特别好用的工具,它依附于窗口而存在。

    创建滑动条

    在 OpenCV 中,可以使用createTrackbar函数来创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。

    参考代码

    int createTrackbar(const string & trackbarname, const string & winname, int * value, int count, TrackbarCallback onChange = 0, void * userdata = 0)

    其中,trackbarname表示我们创建的滑动条的名字。winname表示这个滑动条吸附在的窗口的名字。value表示滑块的位置,在创建时,滑块的初始位置就是该变量的值。count表示滑块可以到达的最大值,最小值始终为 0。onChange表示指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。回调的类型为void xx(int, void*),其中第一个参数表示轨迹条的位置,第二个参数表示用户数据userdatauserdate表示传给回调函数的用户数据。

    #include<opencv2/core/core.hpp>
    #include<opencv2/highgui/highgui.hpp>
    #include<opencv2/imgproc/imgproc_c.h>
    #include <opencv2/imgproc/types_c.h>
    #include<opencv2/imgproc.hpp> 
    #include<iostream>
    using namespace std;
    using namespace cv;
    
    Mat image, srcImage;
    int thresholds = 50;
    
    void threshold_track(int, void*) {
    	Mat result;
    	threshold(srcImage, result, thresholds, 255, THRESH_BINARY);
    	//Canny(srcImage, result, thresholds, thresholds * 3, 3);
    	imshow("边缘检测", result);
    }
    
    int main() {
    	image = cv::imread("...cc.png");
    	if (!image.data)
    		return 1;
    	cvtColor(image, srcImage, COLOR_BGR2GRAY);
    	namedWindow("边缘检测", WINDOW_AUTOSIZE);
    	createTrackbar("阈值", "边缘检测", &thresholds, 300, threshold_track);
    	waitKey(0);
    	return 0;
    }
    

    OpenCV c++滑动条的创建和使用代码

    OpenCV c++滑动条的创建和使用代码

    OpenCV c++滑动条的创建和使用代码

    OpenCV c++滑动条的创建和使用代码

    获取当前滑动条位置

    在 OpenCV 中,可以使用getTrackbarPos()函数来获取当前滑动条的位置。

    参考代码

    int getTrackbarPos(const string& trackbarname, const string& winname);

    其中第一个参数表示滑动条的名字,第二个参数表示轨迹条的父窗口的名称。

    总结

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。