openCV线性混合出现的bug

运行后无论往那个方向拉滑动条,透明度只会降低不会升高。
有没有大佬帮忙看下为什么

#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>

using namespace cv;
#define NAMED_WINDOW “指定区域线性混合”

//------------------声明全局变量----------
const int max_alpha = 100;
int nalphaslide;
double alphavalue;
double betavalue;

Mat srcImage1;
Mat srcImage2;
Mat dstImage;
Mat ROIimage;

//----------------设置回调函数------------------------
void on_back(int,void*)
{
alphavalue = (double) nalphaslide / max_alpha;
betavalue = (1.0 - alphavalue);
addWeighted(srcImage2,alphavalue,ROIimage,betavalue,0.0,ROIimage);
imshow(NAMED_WINDOW,srcImage1);

}

//----------------主函数---------------------------
int main()
{
srcImage1 = imread(“1.jpg”);
srcImage2 = imread(“2.jpg”);
ROIimage = srcImage1(Rect(20,20,srcImage2.cols,srcImage2.rows));
nalphaslide = 20;
namedWindow(NAMED_WINDOW,1);
char trackbarname[50];
sprintf(trackbarname,“透明值%d”,max_alpha);//格式化输出到字符串中
createTrackbar(trackbarname,NAMED_WINDOW,& nalphaslide,max_alpha,on_back);
on_back(nalphaslide,0);
waitKey(0);
return 0 ;
}

猜你喜欢

转载自blog.csdn.net/qq_39112908/article/details/88873494