图像质量评价指标之 PSNR 和 SSIM
1. PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比
給定一個(gè)大小為 (m×n) 的干凈圖像 (I) 和噪聲圖像 (K),均方誤差 ((MSE)) 定義為:
[MSE = frac{1}{mn}sum_{i=0}^{m-1}sum_{j=0}^{n-1}[I(i, j)-K(i,j)]^2
]
然后 (PSNR (dB)) 就定義為:
[PSNR = 10 cdot log_{10}(frac{MAX_I^2}{MSE})
]
其中 (MAX_I^2) 為圖片可能的最大像素值。如果每個(gè)像素都由 8 位二進(jìn)制來表示,那么就為 255。通常,如果像素值由 (B) 位二進(jìn)制來表示,那么 (MAX_I = 2^B-1)。
一般地,針對 uint8 數(shù)據(jù),最大像素值為 255,;針對浮點(diǎn)型數(shù)據(jù),最大像素值為 1。
上面是針對灰度圖像的計(jì)算方法,如果是彩色圖像,通常有三種方法來計(jì)算。
分別計(jì)算 RGB 三個(gè)通道的 PSNR,然后取平均值。
計(jì)算 RGB 三通道的 MSE ,然后再除以 3 。
將圖片轉(zhuǎn)化為 YCbCr 格式,然后只計(jì)算 Y 分量也就是亮度分量的 PSNR。
其中,第二和第三種方法比較常見。
# im1 和 im2 都為灰度圖像,uint8 類型
# method 1
diff = im1 - im2
mse = np.mean(np.square(diff))
psnr = 10 * np.log10(255 * 255 / mse)
# method 2
psnr = skimage.measure.compare_psnr(im1, im2, 255)
compare_psnr(im_true, im_test, data_range=None) 函數(shù)原型可見此處
針對超光譜圖像,我們需要針對不同波段分別計(jì)算 PSNR,然后取平均值,這個(gè)指標(biāo)稱為 MPSNR。
2. SSIM (Structural SIMilarity) 結(jié)構(gòu)相似性
(SSIM) 公式基于樣本 (x) 和 (y) 之間的三個(gè)比較衡量:亮度 (luminance)、對比度 (contrast) 和結(jié)構(gòu) (structure)。
[l(x,y) = frac{2mu_x mu_y + c_1}{mu_x^2+ mu_y^2 + c_1}
]
[c(x,y) = frac{2sigma_x sigma_y + c_2}{sigma_x^2+ sigma_y^2 + c_2}
]
[s(x,y) = frac{sigma_{xy} + c_3}{sigma_x sigma_y + c_3}
]
一般取 (c_3 = c_2 / 2)。
(mu_x) 為 (x) 的均值
(mu_y) 為 (y) 的均值
(sigma_x^2) 為 (x) 的方差
(sigma_y^2) 為 (y) 的方差
(sigma_{xy}) 為 (x) 和 (y) 的協(xié)方差
(c_1 = (k_1L)^2, c_2 = (k_2L)^2) 為兩個(gè)常數(shù),避免除零
(L) 為像素值的范圍,(2^B-1)
(k_1=0.01, k_2=0.03) 為默認(rèn)值
那么
[SSIM(x, y) = [l(x,y)^{alpha} cdot c(x,y)^{eta} cdot s(x,y)^{gamma}]
]
將 (alpha,eta,gamma) 設(shè)為 1,可以得到
[SSIM(x, y) = frac{(2mu_x mu_y + c_1)(2sigma_{xy}+c_2)}{(mu_x^2+ mu_y^2 + c_1)(sigma_x^2+sigma_y^2+c_2)}
]
每次計(jì)算的時(shí)候都從圖片上取一個(gè) (N×N) 的窗口,然后不斷滑動(dòng)窗口進(jìn)行計(jì)算,最后取平均值作為全局的 SSIM。
# im1 和 im2 都為灰度圖像,uint8 類型
ssim = skimage.measure.compare_ssim(im1, im2, data_range=255)
compare_ssim(X, Y, win_size=None, gradient=False, data_range=None, multichannel=False, gaussian_weights=False, full=False, **kwargs) 函數(shù)原型可見此處
針對超光譜圖像,我們需要針對不同波段分別計(jì)算 SSIM,然后取平均值,這個(gè)指標(biāo)稱為 MSSIM。
獲取更多精彩,請關(guān)注「seniusen」!
總結(jié)
以上是生活随笔為你收集整理的图像质量评价指标之 PSNR 和 SSIM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows永久修改控制台cmd编码以
- 下一篇: @Order注解和Ordered接口如何