我试图计算两个图像之间的MSE。1.在Matlab中,immse函数包含一个意想不到的公式(norm(x(:)-y(:),2).^2)/numel(x)。1.我的老师使用的是mean((x(:)-y(:)).^2)。我看到用平均数的方法得到的结果差不多是另一种方法的一半。根据Wikipedia,我老师的版本似乎是正确的。什么是正确的版本使用?为什么会有这些差异呢?
immse
(norm(x(:)-y(:),2).^2)/numel(x)
mean((x(:)-y(:)).^2)
ou6hu8tu1#
它们是计算同一事物的不同形式,它们确实给予了相同的答案。我们可以用一个例子来测试这是一样的
rng(0); x = rand(3,3); y = rand(3,3); immse( x, y ); % = 0.20527 mean((x(:)-y(:)).^2) % = 0.20527
这就是原因。..根据范数文档,norm(v,2)等价于norm(v)或欧几里得范数,定义为平方和的平方根
norm(v,2)
norm(v)
您自己的维基百科链接将MSE定义为
我们可以合并这些(使用来自两个来源的n = N和k = i的一致字母)norm(v,2)的定义和这个表达式的平方:
n
N
k
i
假设:
并代入MSE方程:
这是在immse中完成的计算:(norm(x(:)-y(:),2).^2)/numel(x)因此Wikipedia和MATLAB的immse给出的定义是相同的。Wiki文章的介绍性句子甚至提到了规范因为它是从欧几里德距离的平方导出的[。..]这相当于你老师的定义。他们使用mean对i=1..n执行求和和除以n,并计算与平方欧几里德范数相同的delta的平方。
mean
i=1..n
1条答案
按热度按时间ou6hu8tu1#
它们是计算同一事物的不同形式,它们确实给予了相同的答案。我们可以用一个例子来测试这是一样的
这就是原因。..
根据范数文档,
norm(v,2)
等价于norm(v)
或欧几里得范数,定义为平方和的平方根您自己的维基百科链接将MSE定义为
我们可以合并这些(使用来自两个来源的
n
=N
和k
=i
的一致字母)norm(v,2)
的定义和这个表达式的平方:假设:
并代入MSE方程:
这是在
immse
中完成的计算:(norm(x(:)-y(:),2).^2)/numel(x)
因此Wikipedia和MATLAB的
immse
给出的定义是相同的。Wiki文章的介绍性句子甚至提到了规范因为它是从欧几里德距离的平方导出的[。..]
这相当于你老师的定义。他们使用
mean
对i=1..n
执行求和和除以n
,并计算与平方欧几里德范数相同的delta的平方。