首页 > 编程知识 正文

信噪比计算公式matlab,峰值信噪比计算公式

时间:2023-05-03 08:52:09 阅读:188348 作者:4660

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值大于30dB的时候,可以认为去噪或压缩后的图像质量较好,低于20dB表示图像质量不可接受

转自http://www.cnblogs.com/tiandsp/archive/2012/11/14/2770462.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。