#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_dAlphaValue;
double g_dBetaVAlue;
Mat g_srcImage1;
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_srcImage1,g_dBetaVAlue,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("读取第一幅图像错误,请确定目录下是否有imread函数指定的图片存在!\n");return -1;}
if(!g_srcImage2.data)
{
printf("读取第二幅图像错误,请确定目录下是否有imread函数指定的图片存在!\n");return -1;}
g_nAlphaValueSlider=70;
cvNamedWindow(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;
}
#include<opencv2/highgui/highgui.hpp>
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*)
{
g_dAlphaValue=(double) g_nAlphaValueSlider/g_nMaxAlphaValue;
g_dBetaVAlue=(1.0-g_dAlphaValue);
addWeighted(g_srcImage1,g_dBetaVAlue,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("读取第一幅图像错误,请确定目录下是否有imread函数指定的图片存在!\n");return -1;}
if(!g_srcImage2.data)
{
printf("读取第二幅图像错误,请确定目录下是否有imread函数指定的图片存在!\n");return -1;}
g_nAlphaValueSlider=70;
cvNamedWindow(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;
}
结果: