zoukankan      html  css  js  c++  java
  • MATLAB PSNR

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

    这里的MAX通常是图像的灰度级,一般就是255了。

    这里就不用什么压缩算法了,就是将图像缩小再放大比较一下,下面是代码:

     1 close all;
     2 clear all;
     3 clc;
     4 
     5 img=imread('lena.jpg');
     6 [h w]=size(img);
     7 imgn=imresize(img,[floor(h/2) floor(w/2)]);
     8 imgn=imresize(imgn,[h w]);
     9 img=double(img);
    10 imgn=double(imgn);
    11 
    12 B=8;                %编码一个像素用多少二进制位
    13 MAX=2^B-1;          %图像有多少灰度级
    14 MES=sum(sum((img-imgn).^2))/(h*w);     %均方差
    15 PSNR=20*log10(MAX/sqrt(MES));           %峰值信噪比

    原图

    图像宽高分别缩小1/2再放大到原图,PSNR=30.2dB

    图像宽高分别缩小1/5再放大到原图,PSNR=24.5dB

    可以看出PSNR越高,图像和原图越接近。当然,这都是客观指标,实际评价还有主观指标,不过主观的东西就比较模糊了,每个人感觉都会不同的。

    一位同学为了PSNR两次来找我了,因为自己不是搞图像压缩传输的,所以当时也没帮上什么忙。不过后来还是自己把这一部分熟悉了一下,说不定他下次要来我就能帮上忙了。

  • 相关阅读:
    第十一章关联容器
    第十章泛型算法
    第九章
    第八章
    阅读记录
    java.lang.Class阅读笔记
    java.time包阅读笔记
    CLion运行多个main函数
    c++中lower_bound和upper_bound中的comp参数
    如何写dfs
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/13645340.html
Copyright © 2011-2022 走看看