PSNR,峰值信噪比,通常用來評價一幅圖像壓縮后和原圖像相比質量的好壞,當然,壓縮后圖像一定會比原圖像質量差的,所以就用這樣一個評價指標來規定標准了。PSNR越高,壓縮后失真越小。這里主要定義了兩個值,一個是均方差MSE,另一個是峰值信噪比PSNR,公式如下:
這里的MAX通常是圖像的灰度級,一般就是255了。
這里就不用什么壓縮算法了,就是將圖像縮小再放大比較一下,下面是代碼:
close all; clear all; clc; img=imread('lena.jpg'); [h w]=size(img); imgn=imresize(img,[floor(h/2) floor(w/2)]); imgn=imresize(imgn,[h w]); img=double(img); imgn=double(imgn); B=8; %編碼一個像素用多少二進制位 MAX=2^B-1; %圖像有多少灰度級 MES=sum(sum((img-imgn).^2))/(h*w); %均方差 PSNR=20*log10(MAX/sqrt(MES)); %峰值信噪比
原圖
圖像寬高分別縮小1/2再放大到原圖,PSNR=30.2dB
圖像寬高分別縮小1/5再放大到原圖,PSNR=24.5dB
可以看出PSNR越高,圖像和原圖越接近。當然,這都是客觀指標,實際評價還有主觀指標,不過主觀的東西就比較模糊了,每個人感覺都會不同的。
一位同學為了PSNR兩次來找我了,因為自己不是搞圖像壓縮傳輸的,所以當時也沒幫上什么忙。不過后來還是自己把這一部分熟悉了一下,說不定他下次要來我就能幫上忙了。
參考:1.http://zh.wikipedia.org/wiki/%E5%B3%B0%E5%80%BC%E4%BF%A1%E5%99%AA%E6%AF%94