【发布时间】:2011-04-16 20:32:57
【问题描述】:
有两个公式我发现在MATLAB 中难以表示。假设有两个 RGB 图像,A 和 B,大小相同,m,n 代表行和列,第三维 d=3。如果A 是原始图像,B 是失真版本,Formula1 基本上会计算像素的变化率。 Formula2 计算像素的平均变化率。
1。
Formula1= { sum(C(m,n,d)) / (m * n)} * 100
where `C(m,n) = 0`, if `A(m,n) = B(m,n)`
`=1`, if `A(m,n) != B(m,n)`
对包括第三维在内的所有行和列求和。
我尝试过这样的事情:
Formula1 = sum(sum(abs(double(A)-double(B))./(m*n), 1), 2);
但这并没有给出任何错误。但是,这不是表示它的正确方法,因为没有包含 if 条件。问题区域是如何通过检查是否A == B 以及是否A != B 来合并条件。
2。
Formula2 ={ 1/ (m*n)} * sum { norm (A - B) / 255} * 100
同样,这里也将是所有维度的总和。我不知道如何形成矩阵的范数。
-
Formula3 is ={ 1/ (m*n)} * sum {(A - B) / 255} * 100我是这样试的C = double(sum(A-B,3)); r = reshape(100*(C/255)/(m*n),[1 3])
但是有一个错误说尺寸应该相同并且重塑不起作用。
【问题讨论】: