opencv中createTrackbar()函式用法總結(06)
在opencv中滑動條是很方便的一個測試函式,我們可以不需要更改程式就可以更改變數的值來觀察效果。
還是老習慣,分三步走。第一步,功能說明。第二步,結果圖顯示,第三步,API詳解。第四步,程式碼展示(註釋很詳細,保證所有有C++基礎的人都可以看懂。)
第一步,功能說明:用途就是通過改變滑動條的位置來改變函式裡面變數的值,比如我們需要把程式裡面的變數i改變為10,20,30就可以分別滑到10,20,30,可以實時的顯示i=10,20,30時的效果圖。下面我們通過改變變數 i 的值,實時的把i的值輸出到螢幕。
第二步,結果圖顯示:
初始值(第一張圖片)
滑動到11後(第二張圖片)
滑動到15後(第三張圖片)
我們可以看出變數的值,可以隨著滑動條的改變而改變。
第三步,API詳解:原型:int createTrackbar(const string& trackbarname, const string&winname, int* value, int count ,TrackbarCallback onChange = 0, void* userdata = 0);
引數1:軌跡條名字
引數2:視窗名字
引數3:滑塊初始位置
引數4:表示滑塊達到最大位置的值
引數5:預設值為0,指向回撥函式
引數6:預設值為0,使用者傳給回撥函式的資料值
第四步,程式碼展示:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int i = 7;//滑動條初始值
int maxnum = 20;//滑動條最大值
void text(int,void*);//宣告回撥函式
int main(int argc, char** argv)
{
Mat src = imread("image5.jpg");
//判斷圖片是否載入成功
if (src.empty())
{
printf("圖片載入失敗\n");
system("pause");
//return -1;
}
//新建一個視窗
namedWindow("測試視窗",WINDOW_AUTOSIZE);
//建立滑動條
//注意:i是變數,滑動條擦改變後i改變。
createTrackbar("數字:","測試視窗",&i,maxnum,text);
text(0,0);
waitKey(0);
return 0;
}
//回撥函式
void text(int,void*)
{
cout<<"數字i的值為:"<<i<<endl;
}
本人也是學習opencv不久,如有錯誤,請各位前輩指導。大家如果覺得我的部落格講解通俗易懂,請進我部落格專欄檢視更多API講解。部落格地址https://blog.csdn.net/fanjiule 。轉載請備註本地址。