我正在过滤图像,我想知道信噪比。我尝试使用 scipy 函数 scipy.stats.signaltonoise() 但我得到了一个数字数组,但我真的不知道我得到了什么。
还有其他方法可以获得图像的信噪比吗?
UPDATE:(对于那些不阅读评论中链接材料的人)
这scipy.stats.signaltonoise
函数已被弃用并删除。在链接的 github 线程 https://github.com/scipy/scipy/issues/9097,你可以找到原始配方来自己实现:
def signaltonoise(a, axis=0, ddof=0):
a = np.asanyarray(a)
m = a.mean(axis)
sd = a.std(axis=axis, ddof=ddof)
return np.where(sd == 0, 0, m/sd)
原答案:
你得到一个数组而不是一个数字的原因是因为你没有指定axis=None
在你的电话中scipy.stats.signaltonoise
.
因此,您可能需要这个:
snr = scipy.stats.signaltonoise(img, axis=None)
如果没有该选项,您将获得图像中每一列的 SNR。当数据实际上不是图像而是时间信号序列时,这很有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)