日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C/C++ OpenCV滑动条的创建与使用

發(fā)布時間:2025/3/15 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/C++ OpenCV滑动条的创建与使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

滑動條(Trackbar)是Opencv動態(tài)調節(jié)參數(shù)的一個工具,他依附于窗口存在


創(chuàng)建滑動條:createTrackbar()

int createTrackbar(

const string& trackbarname,

const string& winname,

int *value,

int count,

TrackbarCallback onCahnge=0,

void* userdata=0)

第一個參數(shù):const string&類型的trackbarname,軌跡條的名字,用來代表我們創(chuàng)建的軌跡條

第二個參數(shù):窗口名,表示這個軌跡條依附到哪個窗口上,即對應namedWindow()創(chuàng)建時窗口填的窗口名

第三個參數(shù):int*類型的value,一個指向整形的指針,表示滑塊的位置,在創(chuàng)建時,滑塊的初始位置就是該變量的值。

第四個參數(shù):int類型的count,表示滑塊可以到達的最大位置的值,滑塊最小位置的值始終是0

第五個參數(shù):回調函數(shù),這個函數(shù)必須是void XXX(int,void*)其中第一個參數(shù)是軌跡的位置,第二個參數(shù)是用戶數(shù)據(jù)。

第六個參數(shù):void*類型的userdata,默認為0,這個參數(shù)是用戶傳遞給回調函數(shù)的數(shù)據(jù),三國第三個使用全局變量的話,這個參數(shù)省略



下面是代碼:

#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv;#define WINDOW_NAME "線性混合"//變量聲明 const int g_nMaxAlphaValue = 100; //Alpha的最大值 int g_nAlphaValuesSlider; //滑動條對應的變量 double g_dAlpaValue; double g_dBetaValue;//聲明存儲圖像的變量 Mat g_srcImage1; Mat g_srcImage2; Mat g_dstImage;//響應滑動條的回調函數(shù) void on_Trackbar(int, void *) {//求出當前alpha值對于最大值的比例g_dAlpaValue = (double)g_nAlphaValuesSlider / g_nMaxAlphaValue;//求出第二張圖片的權重g_dBetaValue = (1.0 - g_dAlpaValue);//線性混合addWeighted(g_srcImage1, g_dAlpaValue, g_srcImage2, g_dBetaValue, 0.0, g_dstImage);//顯示效果圖imshow(WINDOW_NAME, g_dstImage); }int main() {g_srcImage1 = imread("1.jpg");g_srcImage2 = imread("2.jpg");if (!g_srcImage1.data){printf("第一張讀取失敗\n");return -1;}if (!g_srcImage2.data){printf("第二張讀取失敗\n");return -1;}//設置滑動條的初始位置g_nAlphaValuesSlider = 50;//創(chuàng)建窗體namedWindow(WINDOW_NAME);//在創(chuàng)建窗體中創(chuàng)建一個滑動條char TranckbarName[50] = "透明值100";createTrackbar(TranckbarName, WINDOW_NAME, &g_nAlphaValuesSlider, g_nMaxAlphaValue, on_Trackbar);on_Trackbar(g_nAlphaValuesSlider, 0);waitKey();return 0; }
文件目錄:


運行結果:






總結

以上是生活随笔為你收集整理的C/C++ OpenCV滑动条的创建与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。