psnr matlab6,PSNR - 奋斗吧,骚年 - OSCHINA - 中文开源技术交流社区

为了进行视频处理,有必要对测量原始信号与处理信号的差别制定客观评价标准。这非常重要,比如在视频编码应用中必须测量由于压缩引起的失真。这样的理想测度应该与两个视频序列之间观察到的差别有很好的相关性。不过,寻找此类测度的过程证实这是异常困难的任务。尽管提出了多种质量测度,与感知到的视频质量相关性好的标准计算相当复杂。现在设计的大多数视频处理系统使两个视频序列和均方差(MSE)最小,对于彩色视频图像,MSE分别对每个彩色分量计算其MSE。

代替MSE,更常用峰值信噪比(peak signal-to-noise ratio,PSNR,单位dB)作为视频处理后质量测量标准。

对于大多数常见的8bit/彩色视频图像,

PSNR完全由MSE确定。PSNR较MSE更常用,因为人们想把图像质量与某个范围的PSNR相联系。根据实际经验,对于亮度像素分量,

PSNR高于40dB说明图像质量极好(即非常接近原始图像),在30—40dB通常表示图像质量是好的(即失真可以察觉但可以接受),在20—30dB说明图像质量差;最后,PSNR低于20dB图像不可接受。

计算两个序列间的PSNR没什么意义,计算每两个对应图像的PSNR然后把从各Frame获得的值取平均值是不正确的。以上主要定义了两个值,一个是均方差MSE,另一个是峰值信噪比PSNR,公式如下:

807fbd13f7519eebdcff9bdb4056b1f5.png

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

备注:

>> PSNR

PSNR(:,:,1) =

39.5797

PSNR(:,:,2) =

39.7485

PSNR(:,:,3) =

39.3670

这是我求得的一张jpg图片的信噪比。

取得0.1的精度时,得到的结果如下:

>> PSNR

PSNR(:,:,1) =

25.8999

PSNR(:,:,2) =

27.1620

PSNR(:,:,3) =

26.4491

取得0.2的精度时,得到的结果如下:

>> PSNR

PSNR(:,:,1) =

29.8792

PSNR(:,:,2) =

30.3280

PSNR(:,:,3) =

29.9064

取得0.6的精度时,得到的结果如下:

val(:,:,1) =

36.8631

val(:,:,2) =

37.0826

val(:,:,3) =

36.7029

取得0.6的精度时,得到的结果如下:

val(:,:,1) =

42.8358

val(:,:,2) =

43.0407

val(:,:,3) =

42.6587

取得0.7的精度时,得到的结果如下:

val(:,:,1) =

46.8471

val(:,:,2) =

47.0110

val(:,:,3) =

46.6243

取得0.8的精度时,得到的结果如下:

>> PSNR

PSNR(:,:,1) =

53.1992

PSNR(:,:,2) =

53.6231

PSNR(:,:,3) =

53.3431

取得0.9的精度时,得到的结果如下:

PSNR(:,:,1) =

66.8596

PSNR(:,:,2) =

67.2335

PSNR(:,:,3) =

64.1362

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值