计算两个图像matlab之间的平均绝对误差

时间:2016-03-26 16:22:14

标签: image matlab image-processing

我想在Matlab中计算两个图像之间的平均绝对误差,并将其命名为MAE  有代码:

x=imread('duck.jpg');
imshow(x)
xmin=min(x);
xmax = max(x);
xmean=mean(x);
I = double(x) / 255;
v = var(I(:));
y = imnoise(x, 'gaussian', 0, v / 10);
y = double(y) / 255;
imshow(y)

1 个答案:

答案 0 :(得分:2)

无需为第一张图片评估min()max()mean()以评估MAE。
由于MAE是两个图像xy(除以像素数)中相应像素之间(L1范数)差异的总和,因此您可以简单地将其评估为:

MAE=sum(abs(x(:)-y(:)))/numel(x);

其中numel()是一个返回其参数中元素数量的函数。在您的情况下,由于xy具有相同数量的元素,您可以放置​​numel(x)numel(y)