給定一個大小爲 的乾淨圖像 和噪聲圖像 ,均方偏差 定義爲:html
而後 就定義爲:python
其中 爲圖片可能的最大像素值。若是每一個像素都由 8 位二進制來表示,那麼就爲 255。一般,若是像素值由 位二進制來表示,那麼 。api
通常地,針對 uint8 數據,最大像素值爲 255,;針對浮點型數據,最大像素值爲 1。函數
上面是針對灰度圖像的計算方法,若是是彩色圖像,一般有三種方法來計算。ui
其中,第二和第三種方法比較常見。spa
# 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) 函數原型可見此處code
針對超光譜圖像,咱們須要針對不一樣波段分別計算 PSNR,而後取平均值,這個指標稱爲 MPSNR。cdn
公式基於樣本 和 之間的三個比較衡量:亮度 (luminance)、對比度 (contrast) 和結構 (structure)。htm
通常取 。圖片
那麼
將 設爲 1,能夠獲得
每次計算的時候都從圖片上取一個 的窗口,而後不斷滑動窗口進行計算,最後取平均值做爲全局的 SSIM。
# im1 和 im2 都爲灰度圖像,uint8 類型
ssim = skimage.measure.compare_ssim(im1, im2, data_range=255)
複製代碼
針對超光譜圖像,咱們須要針對不一樣波段分別計算 SSIM,而後取平均值,這個指標稱爲 MSSIM。
獲取更多精彩,請關注「seniusen」!