scipy.signal.wiener 总是显示警告

Posted

技术标签:

【中文标题】scipy.signal.wiener 总是显示警告【英文标题】:scipy.signal.wiener always show warning 【发布时间】:2016-01-29 15:20:47 【问题描述】:

我正在尝试在灰度图像中使用 Scipy 的 wiener denoise 函数:

image = data.imread(image_path, as_grey=True)
image = signal.wiener(image)

但我总是收到此警告:

/usr/lib/python2.7/dist-packages/scipy/signal/signaltools.py:425: RuntimeWarning: divide by zero encountered in true_divide
      res *= (1 - noise / lVar)
    /usr/lib/python2.7/dist-packages/scipy/signal/signaltools.py:425: RuntimeWarning: invalid value encountered in multiply
      res *= (1 - noise / lVar)

过滤器工作正常,但为什么我收到此警告?

【问题讨论】:

如果image 中的所有值都相同,我可以重现这些警告,例如wiener(np.ones((24, 24)))。你的意见是这样的吗? 其实数组不一定是常数。我还收到wiener(np.random.randint(0, 2, size=(24, 24)) 的警告。 不。事实并非如此。 【参考方案1】:

尝试将输入图片的数据类型转换为float32或float64,即:

image = image.astype('float64')
image = signal.wiener(image)

我想我们将“除以零”作为下溢数。

【讨论】:

以上是关于scipy.signal.wiener 总是显示警告的主要内容,如果未能解决你的问题,请参考以下文章

Swift如何显示警报以请求照片库的权限?

Prometheus 电子邮件警报以显示指标值

如何显示自定义警报以在 ios 中启用通知

Swift - 使用计时器检测用户不活动,然后在 4 分钟后显示警报以提示用户是不是仍然存在

win10玩红警出现这样的提示怎么办。

如何在显示 2 个警报之间暂停代码