opencv —— createTrackbar、getTrackbarPos 滑动条的创建和使用


创建滑动条:createTrackbar 函数

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

int createTrackbar(const string& trackbar_name,const string& window_name,int* value,int count,TrackbarCallback onChange=0,void* userdata=0);

  • trackbar_name,轨迹条的名字。
  • window_name,窗口名字。
  • value,滑块位置,滑块的初始位置为该变量的初始值。
  • count,滑块可以达到的最大位置,最小位置始终为 0。
  • onChange,默认值为 0。这是一个指向回调函数的指针,每次滑块位置改变,这个函数就会进行回调。函数原型必须为 void XXXX (int,void*); 如果回调是 NULL 指针,则表示没有回调函数的调用,仅第三个参数 value 有变化。
  • void* 类型的 userdata,默认值为 0。这个参数是用户传给回调函数的数据,用来处理轨迹条事件,可忽略。

 

示例程序: 

//改变图像的模糊度 //写法 1:
#include<opencv.hpp>
using namespace cv; int main() { Mat src = imread("C:/Users/齐明洋/Desktop/1.jpg"); namedWindow("Control", WINDOW_AUTOSIZE); int sizes = 5; createTrackbar("Size", "Control", &sizes, 50); while (true) { Mat dst; blur(src, dst, Size(sizes, sizes)); imshow("Blur img", dst); imshow("Src img", src); char key = (char)waitKey(1); if (key == 27) { break; } } }
//写法 2: #include<opencv.hpp> using namespace cv; int sizes = 5; VideoCapture cap; Mat src; void change_sizes(int, void*) { Mat dst; blur(src, dst, Size(sizes, sizes)); imshow("Blur img", dst); imshow("Src img", src); } int main() { src = imread("C:/Users/齐明洋/Desktop/1.jpg"); namedWindow("Control", WINDOW_AUTOSIZE); createTrackbar("Size", "Control", &sizes, 50,change_sizes); change_sizes(0, 0); waitKey(0); }

 

获取当前轨迹条的位置:getTrackbarPos 函数

int getTrackbarPos(const string& trackbar_name,const string& window_name) ;

  • const string& 类型的 trackbar_name,轨迹条的名字
  • const string& 类型的 window_name,窗口名字

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM