matlab練習程序(PSNR)


  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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM