matlab 实现图像PSNR的小程序

来源:互联网 发布:大数据概念股龙头股 编辑:程序博客网 时间:2024/06/08 00:18


PSNR,峰值信噪比,通常用来评价一幅图像压缩后和原图像相比质量的好坏,当然,压缩后图像一定会比原图像质量差的,所以就用这样一个评价指标来规定标准了。PSNR越高,压缩后失真越小。这里主要定义了两个值,一个是均方差MSE,另一个是峰值信噪比PSNR,公式如下:


这里的MAX通常是图像的灰度级,一般就是256了。 
这里就不用什么压缩算法了,就是将图像缩小再放大比较一下,下面是代码

<pre name="code" class="html">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;       %图像有多少灰度级 MSE=sum(sum((img-imgn).^2))/(h*w);     %均方差 PSNR=20*log10(MAX/sqrt(MSE));     %峰值信噪比 figure,imshow(imgn,[0,255]);title(sprintf(' PSNR: %.3f dB ', PSNR));



程序很简单,是做为其他图像处理,如去噪、修复、压缩等算法优劣的一个验证指标。

0 0
原创粉丝点击