C++ opencv addweighted回调函数在类中工作不正常
当我使用普通函数时,回调工作正常,代码工作正常,所以我决定将函数放在类中,这就是问题的开始。起初我有一个语法错误“error non-standard syntax;use'&'创建一个指向成员的指针”,所以我将函数改为静态函数,下一个错误是“error:uninitialized local”variable“blean”(blean是一个对象)used”,所以我创建了一个构造函数并将变量初始化为零,现在代码运行了,但是回调函数没有改变值,即使轨迹栏在移动C++ opencv addweighted回调函数在类中工作不正常,c++,opencv,C++,Opencv,当我使用普通函数时,回调工作正常,代码工作正常,所以我决定将函数放在类中,这就是问题的开始。起初我有一个语法错误“error non-standard syntax;use'&'创建一个指向成员的指针”,所以我将函数改为静态函数,下一个错误是“error:uninitialized local”variable“blean”(blean是一个对象)used”,所以我创建了一个构造函数并将变量初始化为零,现在代码运行了,但是回调函数没有改变值,即使轨迹栏在移动 header file-----
header file-----
class Blending
{
public:
Blending();
static void Blend(int, void*);
int Blended;
double alpha;
double beta;
int key;
int minimumvalue;
int maximumvalue ;
};
cpp file-----
int maximumvalue = 100;
int minimumvalue;
void Blending:: Blend(int, void*)
{
Blending b;
b.alpha = (double)b.minimumvalue/ 100;
addWeighted(img,b.alpha,img2, 1.0 - b.alpha, 0, des);
imshow("Blendimage", des);
}
int main()
{
Blending bl;
bl.Blend(bl.minimumvalue, 0);
createTrackbar("Blend", "Blendimage", &minimumvalue, maximumvalue, bl.Blend);
waitKey(0);
//imshow("Blendimage", des),waitKey(0);
return 0;
}
我在网站上浏览了一些类似的问题,但没有找到任何解决我问题的方法,我想这只是我自己的一个愚蠢的错误,提前感谢您接受了任何批评…在Blend函数中,您创建了一个对象b,该对象b使用默认值初始化,因此alpha始终等于0。真的,那么我该怎么做呢,我有点困惑我尝试了这个Blend::Blend():alpha(2){}但仍然没有改进。。