addWeighted 函数中的 OpenCV (gamma)

Posted

技术标签:

【中文标题】addWeighted 函数中的 OpenCV (gamma)【英文标题】:OpenCV (gamma) in addWeighted function 【发布时间】:2017-03-20 06:09:16 【问题描述】:

在 OpenCV (c++) 中添加加权函数

void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1)

gamma 是添加到每个总和的标量。

对于较大的 gamma 值,我们如何使其“环绕”?

当我将 gamma 设为 255 时,我只是得到一个白屏

【问题讨论】:

您对 gamma == 255 的期望是什么? 我希望它会“环绕”并给我相同的图像 如果值为 230 呢? 那么应该稍微深一点,230~-25 我不认为这是加法的工作原理。你的最终目标是什么?也许有不同的可行方法? 【参考方案1】:

根据您的问题,我猜您在代码中动态接收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;

【讨论】:

以上是关于addWeighted 函数中的 OpenCV (gamma)的主要内容,如果未能解决你的问题,请参考以下文章

addWeighted函数的运用

OpenCV-数组加权和cv::addWeighted

OpenCV 完整例程17. 两张图像的渐变切换

OpenCV - 输入参数的大小不匹配 - addWeighted

opencv-python addWeighted() 错误 - 输入参数的大小不匹配

opencv入门之二感兴趣区域ROI,线性混合addWeighted