您的位置:首页 > 运维架构

OpenCV入门,线性混合 使用addWeight函数将两幅图像叠加

2017-06-07 16:14 225 查看
效果:







#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
#define WINDOW_NAME "线性混合"
const int g_nMaxAlphaValue = 100;//alpha 最大值
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;
//bata值为1-alpha值
g_dBetaValue = (1.0 - g_dAlphaValue);
//根据alpha和bata值进行混合
addWeighted(g_srcImage1, g_dAlphaValue, 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");
//设置滑动条初值
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv 函数 namespace
相关文章推荐