0
a=imread('pic1.jpg');
b=0.25*a;
c=4.0*b;
figure;
imshow(c);
MSE = reshape(mean(mean(((a) - (c)).^2,2),1),[1,3])
代码正常工作没有任何错误。 a的大小是256 * 256 * 3 RGB类型。然而, 有2个问题:计算均方误差时的逻辑错误
- 现在从逻辑上讲,应该MSE以来的结果乘以c。与4.0应该扭转操作一直是RGB带零。但是MSE现在是
1.1361 1.2780 1.2902
当用b=0.27.*a
进行测试时观察到了同样的结果;然后c=3.703703704.*b
; - 在MSE公式,对消除双数据类型,错误最小化
0.5346 0.6132 0.6275
谁能解释透彻为什么发生这种情况,什么是补救?
“你提到”双数据类型“,但我没有看到你在代码中使用它的地方。”如果我正在使用uint8,那么在MSE公式中,如果我将MSE =重塑(平均值((double(a) - double(c))^ 2,2),1),[1,3]),那么错误值是不同的。这发生在我发布查询的时候(当时是一个uint8类型的),但是在你解释之后不再存在。谢谢。 – SKM 2011-03-21 18:52:23