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

来源:互联网 发布:vscode npm run 编辑:程序博客网 时间:2024/06/05 10:04

效果:
图片1
图片2
混合45

#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;}
原创粉丝点击