深入理解PSNR(峰值信噪比)(附matlab代码)

深入理解PSNR

作者:老李
日期:2022-1-19

本文引入MSE、SNR、变异系数(Coefficient of Variation),并希望从统计学的角度上解释这个变量

这个变量。

PSNR是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比。
在这里插入图片描述

MSE

用 真实值-预测值 然后平方之后求和平均。
在这里插入图片描述
在图像中的MSE定义说人话就是:

两个图像中每一个相同位置的像素值相减,平方,求和,再求平均。

表达的是两幅图在每一个位置上的像素值的差异的平均。

数值越大,表示两张图片在相似度上更低。

这里注意两点:

  1. 在计算之前要把两个图像调整为同一个阈值,一个[0,1]和一个[0,255]是不能放一起用的。
  2. 图像的大小要保持一致。不然无法做到像素值之间的一一对应。

MSE在描述两图像的相似成都时具有它的局限性。
其中一点是这个定义太简单了,不一定完全符合视觉上规律。
比如说如果两图像是少量的平移或者缩放关系,我们在视觉上的感受是两者之间并无太大差异,图像信息可能被完整地保留了下来(比如大头照)。但是他们计算MSE的时候会有一个不太理想的结果。

PSNR

在这里插入图片描述

注意到MSE在分母上,意味着PSNR数值越高,则两图像相似度更高。

附matlab代码如下:

function [ output ] = PSNR( img1,img2)
%PSNR 峰值信噪比
    if sum(sum(img1-img2)) == 0
        error('Those pictures are the same');
    end
    MAX=1;          %图像有多少灰度级(我这里定为1)
    % 归一化
    if (max(max(img1))-min(min(img1))) ~= 0
        img1 = (img1-min(min(img1)))./(max(max(img1))-min(min(img1)));
    end
    if (max(max(img1))-min(min(img1))) ~= 0
        img2 = (img2-min(min(img2)))./(max(max(img2))-min(min(img2)));
    end
    %
    MSE=sum(sum((img1-img2).^2))/(1024*1024);     %图片像素设为1024 x 1024
    output=20*log10(MAX/sqrt(MSE));           %峰值信噪比    
end


SNR

信噪比是信号均值与背景标准偏差的比值:

在这里插入图片描述

这个结构与PSNR一致。分子分母的量纲一致,相除后便于比较。

为什么是这个结构

引入一个变量
变异系数(Coefficient of Variation)
在这里插入图片描述
是信噪比的倒数。
是概率分布离散程度的一个归一化量度。

一般来说,变异值平均水平高,其离散程度的测度值越大,反之越小。

变异系数是衡量资料中各观测值变异程度的另一个统计量。当进行两个或多个资料变异程度的比较时,如果度量单位与平均数相同,可以直接利用标准差来比较。如果单位和(或)平均数不同时,比较其变异程度就不能采用标准差,而需采用标准差与平均数的比值(相对值)来比较。

变异系数可以消除单位和(或)平均数不同对两个或多个资料变异程度比较的影响。

也就是说,这个变量是个不带单位的指数

举个例子:

已知某良种猪场长白成年母猪平均体重为190kg,标准差为10.5kg,而大约克成年母猪平均体重为196kg,标准差为8.5kg,试问两个品种的成年母猪,哪一个体重变异程度大。

此例观测值虽然都是体重,单位相同,但它们的平均数不相同,只能用变异系数来比较其变异程度的大小。

由于,长白成年母猪体重的变异系数为 5.53%
大约克成年母猪体重的变异系数为4.34%

所以,长白成年母猪体重的变异程度大于大约克成年母猪。

变异系数类比SNR

也就是说,我们讲像素值的离散程度等价于图片的噪声,离散程度越高,图像的噪声越大。

在这里插入图片描述
在这里插入图片描述

SNR越高,像素的离散程度越低,图像质量(可能)越好。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年2月25日 上午9:25
下一篇 2023年2月25日 上午9:27

相关推荐