C++ addWeighted函数中的OpenCV(gamma)
在OpenCV(c++)中添加加权函数C++ addWeighted函数中的OpenCV(gamma),c++,opencv,image-processing,C++,Opencv,Image Processing,在OpenCV(c++)中添加加权函数 void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1) gamma是添加到每个和的标量 对于较大的伽马值,我们如何使其“环绕” 当我将gamma设为255时,根据您的问题,我只得到一个白色屏幕,我猜您在代码中动态地接收到了gamma,并且您没有将其硬编码为固定值 在这
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1)
gamma是添加到每个和的标量
对于较大的伽马值,我们如何使其“环绕”
当我将gamma设为255时,根据您的问题,我只得到一个白色屏幕,我猜您在代码中动态地接收到了gamma,并且您没有将其硬编码为固定值 在这种情况下,我建议您先对
gamma
执行中间算术运算,然后再将其提供给addWeighted()
一个简单的例子是:
int wrap_around_thresh=150;//let's suppose
int gamma=getGammaValue(params)//if you're getting it dynamically
if(gamma < wrap_around_thresh){
//doNothing
}else{
gamma=255-gamma;
}
int-wrap\u-arou\u-thresh=150//让我们假设
int gamma=getGammaValue(params)//如果动态获取它
if(伽马<环绕阈值){
//多诺丁
}否则{
伽马=255伽马;
}
您对gamma==255的期望值是多少?我希望它能“环绕”并给我相同的图像,如果值是230呢?那么它应该稍微暗一些,因为230~-25我不认为这是加法的工作方式。你的最终目标是什么?也许有不同的可行方法?