当我使用普通函数时,回调工作良好且代码正常工作,因此我决定将函数放入类中,这就是问题开始的地方。最初,我遇到语法错误“错误非标准语法;使用'&'创建指向成员的指针”,因此我将函数更改为静态函数,下一个错误为“错误:未初始化的本地“变量” blean (blean是一个对象)”,所以我创建了一个构造函数并将变量初始化为零,现在代码可以运行,但是即使轨迹栏在移动,回调函数也不会更改该值……< / p>
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;
}
我在网站上浏览了一些类似的问题,但没有找到解决我问题的方法,我想这只是我这边的一个愚蠢的错误,在此先感谢任何批评...