跪求高手指教,怎么调用PSNR函数

跪求高手指教,怎么调用PSNR函数,第1张

x1=imread(original)

x2=imread(test)

x1=double(x1)

x2=double(x2)

[m,n]=size(x1)

[m2,n2]=size(x2)

if m2~=m||n2~=n

error('图像选择错误')

end

msevalue=0

for i=1:m

for j=1:n

msevalue=msevalue+(x1(i,j)-x2(i,j))^2

end

end

msevalue=msevalue/(m*n)

disp(['输入数据的mse为:',num2str(msevalue)])

psnrvalue=255^2/msevalue

psnrvalue=10*log10(psnrvalue)

以上是求PSNR的程序,直接加在主函数后面就可以,或者新建一个m文件来保存之后调用。头两句直接读入原图像和经过处理的图像,把图像数据矩阵存放在x1和x2中~~例如x1=imread('lena.bmp')

好像你的方差求的有点问题。

function n=psnr(I,K1)

A1=double(I)

B1=double(K1)

[m,n]=size(A1)

err=0

sum=0

for i=1:1:m,

for j=1:1:n,

err=err+(A1(i,j)-B1(i,j))*(A1(i,j)-B1(i,j))

sum=sum+A1(i,j)*A1(i,j)

end

end

psnr=err/sum

psnr_before_noisedelete=-10*log10(psnr)

PSNR=num2str(psnr_before_noisedelete)

disp(psnr') %显示

这是我用的程序,求出的结果你自己看看吧。

我是自己先定义的一个函数,之后再求的snr。我用上面的函数求的结果一般小于30。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7759343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存