计算两张图片的信噪比时,结果偏低甚至出现负值怎么办?

峰值信噪比(Peak Signal Noise Ratio,PSNR)的定义为图像所允许最大像素值平方与均方误差比率的对数值的10倍。对于常见的8bit灰度图像,其最大的像素值为255,其峰值信噪比的计算公式为
A值一般取255
但是当一张图片的像素值的范围为0~255,比如去噪图片的原图lena.而去噪后图片的像素值范围为9到11。这个时候,尽管图像的去噪效果明显,计算出来的psnr值却是负值。
泊松噪声的去除
如图所示
首先,matlab自带psnr的计算函数,这是函数的调用形式
psnr的正确使用应该满足当两张图片的峰值均为255时,直接调用
psnr(A,ref)即可。
当有一张图片的像素值范围较小,如9~11时,应该把原图的像素值范围也统一到9~11。然后再计算psnr的值,这是调用psnr(A,ref,11)。
统一的代码如下:

function xm=zdd( x, mn, mx )
x = x - min( x(:) );
x = x ./ max(x(:));
xm= mn + x * (mx-mn);
 end

mn代表像素的最小值,如9;mx代表像素的最大值,如11。

zdd1=max(max(yhat));
zdd2=min(min(yhat));
yy=zdd(fd,zdd2,zdd1);
sprintf('OUTPUT PSNR = %f', psnr(yy,yhat,zdd1))

这样输出的峰值信噪比为
这样计算才是正确的psnr

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值