1. 程式人生 > >opencv中createTrackbar()函式用法總結(06)

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   。轉載請備註本地址。