我正在使用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),它對誤差較大的單個像素更敏感。
添加回答
舉報
0/150
提交
取消