为了账号安全,请及时绑定邮箱和手机立即绑定

验证图像处理中的去噪功能的最佳测量是什么?信噪比似乎让我失望

验证图像处理中的去噪功能的最佳测量是什么?信噪比似乎让我失望

郎朗坤 2024-01-04 16:36:41
我正在使用BrainWeb来模拟正常大脑 MR 图像的数据集。我想验证调用包的MyDenoise函数。为此,我从 BrainWeb 下载了两组图像,一组具有0%噪声和0%强度不均匀性的原始图像,另一组具有相同选项但具有9%噪声和40%强度不均匀性的噪声图像。并且,我根据以下已弃用的版本计算信噪比 (SNR) :denoise_nl_meansskimage.restorationscipy.statsdef 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)我认为,去噪后,我们应该有更高的信噪比,这始终是正确的。然而,与原始图像相比,噪声图像中的信噪比更高。我猜这是因为图像的总平均值比标准差增加得更显着。因此,SNR 似乎不能成为验证去噪图像是否更接近原始图像的良好测量方法,因为噪声图像的 SNR 已经高于原始图像。我想知道是否有更好的测量方法来验证图像中的去噪功能。这是我的结果:Original image SNR: 1.23Noisy image SNR: 1.41Denoised image SNR: 1.44谢谢。
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

这不是计算 SNR 的方法。

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

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

noise = image - ground_truth

您现在可以计算均方误差 (MSE):

mse = np.mean(noise**2)

或信噪比:

snr = np.mean(ground_truth) / np.mean(noise)

(请注意,这是信噪比的许多可能的不同定义之一,我们通常使用信号的功率而不仅仅是它们的平均值,并且通常以 dB 为单位进行测量。)

总的来说,MSE 是讨论去噪误差的一个非常好的方法。您会看到该领域的大多数科学论文另外使用峰值信噪比 (PSNR),这只是 MSE 的缩放和对数映射。因此,同时使用两者是没有意义的。

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


查看完整回答
反对 回复 2024-01-04
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信