#include <opencv2/opencv.hpp>
#include "opencv2/highgui/highgui.hpp"
//#include <iostream>
using namespace cv;
#define WINDOW_NAME "【線性混合示例】"
const int g_nMaxAlphaValue = 100;
int g_nAlphaValueSlider;
double g_dAlphaValue;
double g_dBetaValue;
Mat g_srcImage1;
Mat g_srcImage2;
Mat g_dstImage;
void on_Trackbar(int, void*) {
//求出當前alpha值相對於最大值的比例
g_dAlphaValue = (double)g_nAlphaValueSlider / g_nMaxAlphaValue;
//則beta 值爲1減去alpha值
g_dBetaValue = (1.0 - g_dAlphaValue);
//根據alpha和beta值進行線性混合
addWeighted(g_srcImage2, g_dAlphaValue, g_srcImage1, g_dBetaValue, 0.0, g_dstImage);
imshow(WINDOW_NAME, g_dstImage);
}
int main()
{
g_srcImage1 = imread("1.jpg");
g_srcImage2 = imread("3.jpg");
//設置滑動條的初值70
g_nAlphaValueSlider = 70;
//創建窗體
namedWindow(WINDOW_NAME, 1);
//在創建的窗體中創建一個滑動條控件
char TrackbarName[50];
sprintf(TrackbarName, "透明值 %d", g_nMaxAlphaValue);
createTrackbar(TrackbarName,WINDOW_NAME, &g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar);
on_Trackbar(g_nAlphaValueSlider, 0);
waitKey(0);
return 0;
}
滑動條的創建與使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.