Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 图像的方差与均值_Matlab - Fatal编程技术网

Matlab 图像的方差与均值

Matlab 图像的方差与均值,matlab,Matlab,我正在计算原始图像和隐藏图像的平均值和方差,以比较它们 我正在为comaprison使用灰度BMP图像 image=imread("image name") M = mean(image(:)) V = var((image(:))) 这是在MATLAB中计算均值/方差的正确方法吗?我的差异越来越大 感谢您的帮助。这些确实是计算图像所有像素的均值和方差的正确方法 您的方差大于平均值并非不可能,因为两者均按以下方式定义: mean = sum(x)/length(x) variance

我正在计算原始图像和隐藏图像的平均值和方差,以比较它们 我正在为comaprison使用灰度BMP图像

image=imread("image name")
M = mean(image(:))
V = var((image(:)))
这是在MATLAB中计算均值/方差的正确方法吗?我的差异越来越大


感谢您的帮助。

这些确实是计算图像所有像素的均值和方差的正确方法

您的方差大于平均值并非不可能,因为两者均按以下方式定义:

mean     = sum(x)/length(x)
variance = sum((x - mean(x)).^2)/(length(x) - 1);
例如,如果您使用
randn(N,1)
从标准正态分布生成噪声,您将获得
N
样本,如果您计算均值和方差,您将获得大约
0
1
。因此,你的方差也可能大于平均值

两者都有完全不同的含义:平均值给你一个概念你的像素在哪里(即它们是白色、黑色、50%灰色……)。平均值将让您了解选择什么像素颜色来概括整个图像的颜色。方差让您了解像素值的排列方式:例如,如果您的平均像素值为50%灰度,那么大多数其他像素是否也为50%灰度(小方差),或者您是否有50个黑色像素和50个白色像素(大方差)?因此,您也可以将其视为一种方法,以了解平均值对图像的总结程度(即,在零方差的情况下,大部分信息由平均值捕获)

编辑:对于信号的RMS值(均方根),只需按照指示执行即可。在大多数情况下,在计算RMS值之前,您希望删除DC分量(即平均值)


编辑2:我忘记提到的是:从物理角度比较方差的数值与平均值也没有什么意义。平均值的维数与数据的维数相同(如果是像素,请考虑强度),而方差的维数为数据的平方(因此强度为^2)。标准偏差(
std
,在MATLAB中)是方差的平方根,另一方面,它与数据具有相同的维数,因此您可以在这里进行一些比较(这是另一个问题,您是否应该进行此类比较)。

如果您使用RGB图像(H x W x 3),您必须分别计算每个通道的平均值和方差。在这种情况下,平均像素也将是3值向量

for ch = 1:3
   M(ch) = mean(reshape(img(:,:,ch),[],1));
   V(ch) = var(reshape(img(:,:,ch),[],1));
end

MATLAB具有函数
image
。避免将其用作变量。

准确地说。简单示例:
image=[02]
。平均值是1,但方差是2。谢谢Egon的解释。。请你解释一下如何在MATLAB中获得图像的均方根值。我指的是这篇文章,其中的平均值远小于方差