求PSNR

functionf = WPSNR(A,B,varargin)

% ThisfunctioncomputesWPSNR(weightedpeaksignal - to - noiseratio)between
% twoimages.Theanswer is in decibels(dB).
%
% Usingcontrastsensitivityfunction(CSF)toweightspatialfrequency
% oferrorimage.
%
% Using:WPSNR(A,B)
%
% WrittenbyRuizhenLiu,http: // www.assuredigit.com

if A == B
error(
' Imagesareidentical:PSNRhasinfinitevaluelilizong ' )
end

max2_A
= max(max(A));
max2_B
= max(max(B));
min2_A
= min(min(A));
min2_B
= min(min(B));

if max2_A > 1 | max2_B > 1 | min2_A < 0 | min2_B < 0
error(
' inputmatricesmusthavevaluesintheinterval[0,1] ' )
end

e
= A - B;
if nargin < 3
fc
= csf; % filtercoefficientsofCSF
else
fc
= varargin ... {1} ;
end
ew
= filter2(fc,e); % filteringerrorwithCSF

decibels
= 20 * log10( 1 / (sqrt(mean(mean(ew. ^ 2 )))));
% disp(sprintf( ' WPSNR=+%5.2fdB ' ,decibels))
f
= decibels;

%=============
functionfc
= csf()
%=============
% ProgramtocomputeCSF
% ComputecontrastsensitivityfunctionofHVS
%
% Output:fc --- filtercoefficientsofCSF
%
% Reference:
% MakotoMiyahara
% " ObjectivePictureQualityScale(PQS)forImageCoding "
% IEEETrans.onComm.,Vol 46 ,No. 9 , 1998 .
%
% WrittenbyRuizhenLiu,http: // www.assuredigit.com

% computefrequencyresponsematrix
Fmat
= csfmat;

% Plotfrequencyresponse
% mesh(Fmat);pause

% compute 2 - Dfiltercoefficient using FSAMP2
fc
= fsamp2(Fmat);
% mesh(fc)

%===================
functionFmat
= csfmat()
%===================
% ComputeCSFfrequencyresponsematrix
%
% Calledbyfunctioncsf.m
%
% Frequencyrange:therangoffrequencyseemstobe:
% w = pi = ( 2 * pi * f) / 60
% f = 60 * w / ( 2 * pi),about 21.2
%
min_f
= - 20 ;
max_f
= 20 ;
step_f
= 1 ;
u
= min_f:step_f:max_f;
v
= min_f:step_f:max_f;
n
= length(u);
Z
= zeros(n);
for i = 1 :n
for j = 1 :n
Z(i,j)
= csffun(u(i),v(j)); % callingfunctioncsffun
end
end
Fmat
= Z;


%========================
functionSa
= csffun(u,v)
%========================
% ContrastSensitivityFunction in spatialfrequency
% Thisfilecomputethespatialfrequencyweightingoferrors
%
% Reference:
% MakotoMiyahara
% " ObjectivePictureQualityScale(PQS)forImageCoding "
% IEEETrans.onComm.,Vol 46 ,No. 9 , 1998 .
%
% Input:u --- horizontalspatialfrequencies
% v --- verticalspatialfrequencies
%
% Output:frequencyresponse
%
% WrittenbyRuizhenLiu,http: // www.assuredigit.com

% ComputeSa -- spatialfrequencyresponse
% symsSwsigmafuv
sigma
= 2 ;
f
= sqrt(u. * u + v. * v);
w
= 2 * pi * f / 60 ;
Sw
= 1.5 * exp( - sigma ^ 2 * w ^ 2 / 2 ) - exp( - 2 * sigma ^ 2 * w ^ 2 / 2 );

% Modification in Highfrequency
sita
= atan(v. / (u + eps));
bita
= 8 ;
f0
= 11.13 ;
w0
= 2 * pi * f0 / 60 ;
Ow
= ( 1 + exp(bita * (w - w0)) * (cos( 2 * sita)) ^ 4 ) / ( 1 + exp(bita * (w - w0)));

% Computefinalresponse
Sa
= Sw * Ow;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值