matlab练习程序(PSNR)

更新时间:2024-03-20 16:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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越高,图像和原图越接近。当然,这都是客观指标,实际评价还有主观指标,不过主观的东西就比较模糊了,每个人感觉都会不同的。

本文来源:https://www.bwwdw.com/article/o0o8.html

Top