MATLAB专业知识:MATLAB中如何调用函数psnr

2024年11月22日 03:31
有1个网友回答
网友(1):

%%图像格式是bmp,如果不是则要加RGB2GRAY函数转化
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');