Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在图像处理中,验证去噪功能的最佳方法是什么?信噪比似乎让我失望_Python_Image Processing_Noise Reduction - Fatal编程技术网

Python 在图像处理中,验证去噪功能的最佳方法是什么?信噪比似乎让我失望

Python 在图像处理中,验证去噪功能的最佳方法是什么?信噪比似乎让我失望,python,image-processing,noise-reduction,Python,Image Processing,Noise Reduction,我在用一个模拟的数据集做正常的脑部MR图像。我想验证MyDenoise函数,该函数调用denoise\u nl\u意味着skimage.restoration包的。为此,我从BrainWeb下载了两组图像,一组原始图像具有0%噪声和0%强度不均匀性,另一组噪声图像具有相同的选项,但具有9%噪声和40%强度不均匀性。并且,我根据弃用版本的scipy.stats计算信噪比(SNR),如下所示: def signaltonoise(a, axis=0, ddof=0): a = np.asan

我在用一个模拟的数据集做正常的脑部MR图像。我想验证
MyDenoise
函数,该函数调用
denoise\u nl\u意味着
skimage.restoration
包的
。为此,我从BrainWeb下载了两组图像,一组原始图像具有0%噪声和0%强度不均匀性,另一组噪声图像具有相同的选项,但具有9%噪声和40%强度不均匀性。并且,我根据弃用版本的
scipy.stats
计算信噪比(SNR),如下所示:

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)

我假设,在去噪之后,我们应该有一个更高的信噪比,这总是正确的。然而,与原始图像相比,噪声图像的信噪比更高。我猜这是因为图像的总平均值比标准差增加得更明显。因此,信噪比似乎不能很好地衡量去噪后的图像是否更接近原始图像,因为噪声图像的信噪比已经高于原始图像。我想知道是否有更好的方法来验证图像中的去噪功能

以下是我的结果:


谢谢。

这不是计算信噪比的方法

核心概念是,对于任何一个给定的图像,你都不知道什么是噪声,什么是信号。如果我们这样做了,去噪就不会成为问题。因此,无法从一幅图像中测量噪声级(可以估计噪声级,但我们无法计算噪声级)

解决方案是使用无噪图像。这是基本事实,也是去噪操作的目标。因此,我们可以通过将任何一幅图像与该地面真实值进行比较来估计噪声,差异就是噪声:

noise = image - ground_truth
现在可以计算均方误差(MSE):

或信噪比:

snr = np.mean(ground_truth) / np.mean(noise)
(请注意,这是许多不同的信噪比定义之一,我们通常使用信号的功率,而不仅仅是它们的平均值,通常以dB为单位进行测量。)

一般来说,MSE是讨论去噪误差的一个很好的方法。您将看到该领域的大多数科学论文另外使用峰值信噪比(PSNR),这只是MSE的缩放和对数映射。因此,两者都使用是毫无意义的

您还可以查看平均绝对误差(MAE),它对误差较大的单个像素更为敏感

mse = np.mean(noise**2)
snr = np.mean(ground_truth) / np.mean(noise)