首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >均方误差(MSE)问题

均方误差(MSE)问题
EN

Stack Overflow用户
提问于 2013-07-23 12:29:29
回答 1查看 2.9K关注 0票数 0

当我在不同的计算机(MATLAB)上执行以下代码来计算均方误差时,我得到了不同的答案。有没有人知道为什么会这样?

代码语言:javascript
复制
function [mse,psnr] = mse_psnr(im1,im2)

N = size(im1);
acc = 0;

for k1=1:N(1)
  for k2=1:N(2)
     acc = acc+ ( im1(k1,k2) - im2(k1,k2) )^2;   
  end
end

mse  = acc/(N(1)*N(2));
psnr = 10*log10((255^2)/mse);
EN

回答 1

Stack Overflow用户

发布于 2013-07-23 13:25:56

请尝试并向量化代码以删除嵌套循环:

代码语言:javascript
复制
function [mse psnr] = mse_psnr( im1, im2 )
% make sure input data type is double
im1 = double(im1);
im2 = double(im2);
acc = sum( (im1(:)-im2(:)).^2 ); % instead of nested loop...
mse = acc / numel(im1);
psnr = 10*log10( (255^2)/mse );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17801516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档