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 总是显示警告的主要内容,如果未能解决你的问题,请参考以下文章