Matlab 图像质量度量计算

Matlab 图像质量度量计算,matlab,image-processing,Matlab,Image Processing,我需要为RGB图像计算不同的IQM,如MSE、PSNR、AD、NCC等。我的问题是: 转换为灰度后我可以计算这些值吗?i、 e.使用RGB2格雷?还是必须输入RGB图像 例如:我使用 mse = immse(origImg,distImg) %Method 1 (These images are RGB) 及 但他们给出了不同的结果。为什么?因为方法1应用以下公式:immse=err=normorigImg:-distImg:,2.^2/numerigim;,而方法2的误差计算不尽相同,

我需要为RGB图像计算不同的IQM,如MSE、PSNR、AD、NCC等。我的问题是: 转换为灰度后我可以计算这些值吗?i、 e.使用RGB2格雷?还是必须输入RGB图像

例如:我使用

mse = immse(origImg,distImg)    %Method 1 (These images are RGB)


但他们给出了不同的结果。为什么?

因为方法1应用以下公式:immse=err=normorigImg:-distImg:,2.^2/numerigim;,而方法2的误差计算不尽相同,因此得出不同的结果是合理的。
此外,您还可以将它们应用于RGB和灰度

除了Y.AL答案之外,我还提出了另一种方法来达到同样的结果。我认为这是一种更直观的方法:

mse = mean((A(:)-B(:)).^2) %with A and B the two images to compare
A和B的数据类型为double,如果不是,则需要转换这些变量

我们看到,MSE只是计算每个像素的平方差的平均值

我们可以检查结果是否与以下内容相同:

%Dummy data    
A = rand(10,10,3);
B = rand(10,10,3);

%Custom vs built in MSE computation
MSE1 = mean((A(:)-B(:)).^2)
MSE2 = immse(A,B)

我猜x代表原点。所以,如果我在计算IQM之前先将RGB图像转换成灰度,这在概念上是正确的吗?
%Dummy data    
A = rand(10,10,3);
B = rand(10,10,3);

%Custom vs built in MSE computation
MSE1 = mean((A(:)-B(:)).^2)
MSE2 = immse(A,B)