matlab数字图像处理中求MSE与PSNR SNR语句,请!

matlab数字图像处理中求MSE与PSNR SNR语句,请!,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

就是数字图像处理后的评价参数(SNR)信噪比,MSE(均方差)与PSNR(峰值信噪比)下面是我写的,不知道对不!请高手指教!谢谢!

MSE:

x=imread('e:\image\hou.bmp')

x1=imread('e:\image\11.bmp')

x=double(x)

x1=double(x1)

[m,n]=size(x)

for i=1:m

for j=1:n

a(i,j)=x(i,j)-x1(i,j)

end

end

b=0

for i=1:m

for j=1:n

b=b+a(i,j)

end

end

c=b/(m*n)

SNR:

clear all

x=imread('e:\image\2.bmp')

x1=imread('e:\image\h.bmp')

x=double(x)

x1=double(x1)

for i=1:110

for j=1:110

a(i,j)=x(i,j)^2%after filtering's single

b(i,j)=x(i,j)-x1(i,j)

end

end

d=0

e=0

for i=1:110

for j=1:110

d=d+a(i,j)

e=e+b(i,j)*b(i,j)

end

end

f=log10(d/e)

g=10*f

解析:

建议你去网上下载一个checkmark,matlab写的,里面有你需要的全部东东,还有一些更宝贵的代码

以上。

做过的老狼

[p,q]=size(f)

mse=0

for i=1:p

for j=1:q

a=(f(i,j)-f'(i,j))^2

mse=mse+a

end

end

mse=mse/(256*256)

psnr=10*log10((255*255)/mse)

>>close all

>>clear all

>>I=imread('lena.bmp')

>>J=imnoise(I,'gaussian',0.01,0.005)

>>A=imread('lena.bmp')

[M,N]=size(A)

B = imread('J.bmp')

a=double(A)

b=double(B)

sum=0

for i=1:M

for j=1:N

sum=sum+(a(i,j)-b(i,j))^2

end

end

mseValue=sum/(M*N)

psnrValue=10*log10(255^2/mseValue)

disp(['输入数据的MSE为:',num2str(mseValue)])

disp(['输入数据的PSNR为:',num2str(psnrValue)])

输入数据的MSE为:7915.4387

输入数据的PSNR为:9.1461

以上是MATLAB程序 及其输出结果 M文件可为

function PSNR = PSNR(A,B)

[M,N]=size(A)

x=double(A)

y=double(B)

sum=0

for i=1:M

for j=1:N

sum=sum+(x(i,j)-y(i,j))^2

end

end

mseValue=sum/(M*N)

psnrValue=10*log10(255^2/mseValue)

disp(['输入数据的MSE为:',num2str(mseValue)])

disp(['输入数据的PSNR为:',num2str(psnrValue)])


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

原文地址: https://outofmemory.cn/yw/12120716.html

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

发表评论

登录后才能评论

评论列表(0条)

保存