bjxiaohua
2009-03-09, 17:40
以下是我写的一个计算PSNR的小程序,当时没考虑到两张图片大小不同,现在用radon重构图像后得到的尺寸(245*245)比原始图像(171*171)大,怎么求两张图片的PSNR值呢?
function S=PSNR(I,J)
if (size(I)~=size(J))
error('Size mismatch!')
end
if (~isrgb(I) & ~isrgb(J))
[m n] = size(I);
A=double(I);
B=double(J);
sumaDif=0;
maxI=m*n*max(max(A.^2));
sumaDif=sum(sum((A-B).^2));
if (sumaDif==0)
sumaDif=1;
end
S=maxI/sumaDif;
S=10*log10(S);
else
error('Las imagenes no pueden ser en color')
end
function S=PSNR(I,J)
if (size(I)~=size(J))
error('Size mismatch!')
end
if (~isrgb(I) & ~isrgb(J))
[m n] = size(I);
A=double(I);
B=double(J);
sumaDif=0;
maxI=m*n*max(max(A.^2));
sumaDif=sum(sum((A-B).^2));
if (sumaDif==0)
sumaDif=1;
end
S=maxI/sumaDif;
S=10*log10(S);
else
error('Las imagenes no pueden ser en color')
end