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