highgui基础 OpenCV trackbar
生活随笔
收集整理的這篇文章主要介紹了
highgui基础 OpenCV trackbar
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
??????? 在調(diào)試程序或者程序執(zhí)行時需要調(diào)整某個變量的值亦或是參數(shù)的值,我們需要一個簡單方便的操作,滾動條就是一個非常使用的工具。通過鼠標點擊對滾動條進行拖動操作以期實現(xiàn)調(diào)整某個參數(shù)的值。下面例程參見Opencv 安裝目錄 samples tutorial_code文件夾。
#include"opencv2/opencv.hpp" using namespace cv; using namespace std;const int alpha_slider_max = 100; int alpha_slider; double alpha; double beta;//存儲矩陣 Mat src1, src2, dst;void on_tracker(int, void*); int main(int argc, char* argv[]) {src1 = imread("C:/Users/lyb/Documents/Visual Studio 2013/Projects/ConsoleApplication trackbar/Debug/1.jpg");src2 = imread("C:/Users/lyb/Documents/Visual Studio 2013/Projects/ConsoleApplication trackbar/Debug/2.jpg");if (!src1.data){ cout << "Error loading src1" << endl; return -1; } //判斷載入是否成功if (!src2.data){ cout << "Error loading src2" << endl; return -1; }alpha_slider = 0;namedWindow("Linear_blend");//namedWindow("control_image");//建立滑塊char TrackbarName[50];sprintf(TrackbarName, "Alpha x %d", alpha_slider_max);//標準寫入字符串createTrackbar(TrackbarName, "Linear_blend", &alpha_slider, alpha_slider_max, on_tracker);//參數(shù)1滑塊名稱 參數(shù)2顯示窗口 參數(shù)3 OPENCV將當前滑塊位置值傳給指針指向的整數(shù) 參數(shù)4滑塊調(diào)整范圍最大值 參數(shù)5指向回調(diào)函數(shù)的指針,當滑動條被拖動時,函數(shù)自動調(diào)用on_tracker(alpha_slider, 0);waitKey(0);return 0;}void on_tracker(int, void*) //滑塊所對應(yīng)的操作函數(shù) 對圖像進行線性混合 {alpha = (double)alpha_slider / alpha_slider_max;beta = (1.0 - alpha);addWeighted(src1, alpha, src2, beta, 0.0, dst);/*cvAddWeighted 計算兩數(shù)組的加權(quán)值的和: dst(I) = src1(I)*alpha + src2(I)*beta + gamma cvAddWeighted( const CvArr* src1, double alpha, const CvArr* src2, double beta, double gamma, CvArr* dst );src1 //第一個原數(shù)組.alpha //第一個數(shù)組元素的權(quán)值src2 //第二個原數(shù)組beta //第二個數(shù)組元素的權(quán)值gamma //添加的常數(shù)項。dst //輸出數(shù)組*/imshow("Linear_blend", dst); }總結(jié)
以上是生活随笔為你收集整理的highgui基础 OpenCV trackbar的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OPENCV回调函数
- 下一篇: 2018 java蓝桥杯校赛题目