不懂的知识点
1、addweighted()函数
void on_Trackbar(int, void*)
{
g_dAlphaValue = (double) g_nAlphaValueSlider/g_nMaxAlphaValue;
g_dBetaValue = 1.0 - g_dAlphaValue;
addWeighted(g_srcImage, g_dAlphaValue, g_srcImage2, g_dBetaValue,0.0, g_dstImage);
imshow(WINDOW_NAME, g_dstImage);
}
2、回调函数
createTrackbar(TrackbarName, WINDOW_NAME,&g_nAlphaValueSlider, g_nMaxAlphaValue, on_Trackbar);
on_Trackbar( g_nAlphaValueSlider, 0);
#include <opencv2/opencv.hpp>
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
#define WINDOW_NAME "[线性混合实例]"
const int g_nMaxAlphaValue = 100;
int g_nAlphaValueSlider;
double g_dBetaValue;
double g_dAlphaValue;
Mat g_srcImage;
Mat g_srcImage2;
Mat g_dstImage;
void on_Trackbar(int, void*)
{
g_dAlphaValue = (double) g_nAlphaValueSlider/g_nMaxAlphaValue;
g_dBetaValue = 1.0 - g_dAlphaValue;
addWeighted(g_srcImage, g_dAlphaValue, g_srcImage2, g_dBetaValue,0.0, g_dstImage);
imshow(WINDOW_NAME, g_dstImage);
}
int main()
{
g_srcImage = imread("1.jpg");
g_srcImage2 = imread("2.jpg");
if(!g_srcImage.data)
{
printf("1.jpg....unsucessful");
return -1;
}
if(!g_srcImage2.data)
{
printf("2.jpg....unsucessful");
return -1;
}
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;
}
![这里写图片描述](https://img-blog.csdn.net/20170922203731420?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU0RVVHlhbmdrdW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)