作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在过滤图像,我想知道 SNR。我尝试使用 scipy 函数 scipy.stats.signaltonoise() 但我得到了一组数字,但我真的不知道我得到了什么。
还有其他方法可以获取图像的信噪比吗?
最佳答案
更新:(对于那些没有阅读评论中链接 Material 的人)scipy.stats.signaltonoise
函数已被弃用并删除。在 the linked github thread ,你可以找到原始配方自己实现:
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)
原答案:
你得到一个数组而不是一个数字的原因是因为你没有在调用 scipy.stats.signaltonoise
时指定 axis=None
.
因此,您可能需要这个:
snr = scipy.stats.signaltonoise(img, axis=None)
如果没有该选项,您将获得图像中每一列的 SNR。当数据实际上不是图像,而是时间信号序列时,这很有意义。
关于python - 如何从 Python 中的图像中获取信噪比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25524192/
我是一名优秀的程序员,十分优秀!