python - 如何从 Python 中的图像中获取信噪比?

标签 python image-processing

我正在过滤图像,我想知道 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/

相关文章:

c - 如何使用prolog调用酷图库函数?

Python 仅减去一次 (HH :MM:SS) from a DateTime Column

python - 通过tornado.proces.Subprocess调用xtail

python - 如何使用 Spacy 将 Rasa Bot 部署到 Heroku

c# - 检测图像中的颜色 Blob

matlab - 为什么我的 improfile 函数的结果在 MATLAB 中返回镜像图?

c# - 从图像中获取点的坐标

python - 在每个训练周期后评估测试集上的模型

python - @abstractmethod 在不应该使用 metaclass=ABCMeta 的情况下也能正常工作

php - 以编程方式比较图像 - 库或类