求高手帮忙看一下 下面这个求两幅图像均方误差MSE和峰值信噪比PSNR的小程序有无问题

clearallcloseallA=imread('lena512.bmp');[M,N]=size(A);B=imread('lena512高斯模糊.bmp');a=d... clear all
close all
A=imread('lena512.bmp');
[M,N]=size(A);
B = imread('lena512高斯模糊.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为:7656.0046
输入数据的PSNR为:9.2908

上面程序最后两行为Matlab输出
想问一下 上面程序有没有错误啊
输出结果MSE为:7656.0046没问题吧 我的意思是有可能有这么大吗

我是小白O(∩_∩)O~ 没大学过Matlab 正在做一个课程设计 见谅
展开
 我来答
jfzheng000
2011-05-21
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
好像你的方差求的有点问题。
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。
Sievers分析仪
2024-12-30 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式