psnr是“Peak Signal to Noise Ratio”的縮寫,即峰值信噪比,是一種評價圖像的客觀標准,它具有局限性,一般是用於最大值信號和背景噪音之間的一個工程項目。
peak的中文意思是頂點。而ratio的意思是比率或比列的。整個意思就是到達噪音比率的頂點信號,psnr一般是用於最大值信號和背景噪音之間的一個工程項目。通常在經過影像壓縮之后,輸出的影像都會在某種程度與原始影像不同。為了衡量經過處理后的影像品質,我們通常會參考PSNR值來衡量某個處理程序能否令人滿意。它是原圖像與被處理圖像之間的
均方誤差相對於(2^n-1)^2的對數值(信號最大值的平方,n是每個采樣值的比特數),它的單位是dB。 MATLAB用法的公式如下:
PSNR=10*log10((2^n-1)^2/MSE)
其
數學公式如下圖所示:
Peak就是指8bits表示法的最大值255。MSE指MeanSquareError,I(角標n)指原始影像第n個pixel值,P(角標n)指經處理后的影像第n個pixel值。PSNR的單位為dB。所以PSNR值越大,就代表失真越少
優缺點:
PSNR是最普遍,最廣泛使用的評鑒
畫質的客觀量測法,不過許多實驗結果都顯示,PSNR的分數無法和人眼看到的視覺品質完全一致,有可能PSNR較高者看起來反而比PSNR較低者差。這是因為人眼的視覺對於誤差的敏感度並不是絕對的,其感知結果會受到許多因素的影響而產生變化(例如:人眼對
空間頻率較低的對比差異敏感度較高,人眼對
亮度對比差異的敏感度較色度高,人眼對一個區域的感知結果會受到其周圍鄰近區域的影響)。
python代碼:
參考文檔:


