2014-08-27 827 views
4

我正在过滤图像,我想知道信噪比。我试着用scipy函数scipy.stats.signaltonoise(),但是我得到一个数组数组,我真的不知道我得到了什么。如何从Python中的图像获取信噪比?

有没有其他方法可以获得我的图像的信噪比?

+3

检查[doc](http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.signaltonoise.html#scipy.stats.signaltonoise)它会告诉你数组的含义数字 – sk11 2014-08-27 10:09:42

+2

如何定义图像的信噪比?如果它是一个摄像头图像,我的猜测是你有统一颜色的区域,它将表示信号和像素上的波动作为噪声。在这种情况下,您可以将这幅图像的感兴趣区域限制在这些统一区域,然后采用“平均值”和标准偏差。但是,如果没有关于图像的更多信息,我们无法真正帮助您:您的问题没有如此明确。 – 2014-08-27 10:16:37

+0

我已经阅读过doc @ sk11,并且给出了选定轴上每个像素的SNR。但是,我想知道孔图像的信噪比,有没有可能性? – Jalo 2014-08-27 10:53:11

回答

2

你得到一个数组而不是一个单一数字的原因是因为你在scipy.stats.signaltonoise的调用中没有指定axis=None

因此,你可能需要这样:

snr = scipy.stats.signaltonoise(img, axis=None) 

没有这个选项,你会得到的SNR为图像中的每个列。当数据实际上不是图像时,这很有意义,但是例如是一系列时间信号。