![](https://csdnimg.cn/release/download_crawler_static/86656415/bg1.jpg)
function S=PSNR(Im_original,Im_modified)
if(size(Im_original)~=size(Im_modified))
error('错误,两个输入的图像大小不一致!')
end
if(~isrgb(Im_original)&~isrgb(Im_modified))
[m,n]=size(Im_original);
A=double(Im_original);
B=double(Im_modified);
sumaDif=0;
maxI=m*n*max(A.^2);
for u=1:m
for v=1:n
sumaDif=sumaDif+(A(u,v)-B(u,v))^2;
end
end
if(sumaDif==0)
sumaDif=1;
end
S=maxI/sumaDif;
S=10*log10(S);
else
error('错误,输入的图像为彩色图像')
end
clear
clc
F=checkerboard(2); %原图像
D=imnoise(F,'gaussian',0,0.02); %退化图像=参考信号
nhood=[3 3];
% Estimate the local mean of f.
localMean = filter2(ones(nhood), D) / prod(nhood);
H=D-localMean;%仿照 wiener2 函数里的求取类似的“均值”
[h k]=size(D);
L=h*k;
D=reshape(D,L,1); %将图像矩阵变为矢量形式
f=zeros(size(D)); %系统输出=误差信号
y=f; %噪声逼近信号初始化
评论0