如何在MATLAB中找到图像的标准差

时间:2012-11-16 03:47:11

标签: matlab standard-deviation

我有一个图像,我想找到图像每行的标准偏差,我将使用每行的SD值来计算图像的平均SD。我知道找到SD(std)的功能,但我不知道如何开始/做。

3 个答案:

答案 0 :(得分:2)

MATLAB中的图像仍然只是矩阵。由于您希望获取行的标准偏差,因此可以使用std(A,0,2)来获取行的标准偏差。然后,您可以在结果向量上再次使用std来获得我认为您正在寻找的内容。

答案 1 :(得分:1)

如果您有灰度图像,请使用

mean(std(img.'))

如果您有彩色图像(即ndims(img) == 3),则必须在阵列的每个页面上重复上述步骤:

squeeze( mean(std(img,0,2)) )

将导致每个颜色层的每行的平均标准偏差。

答案 2 :(得分:1)

不是计算每行的std然后取平均值,而是计算整个图像的标准(所有像素值)不是更准确(更简单)吗?那就是:

 std(img(:));

获取每行std然后取平均值并不完全是图像所有像素值的std ... 例如:

 >> a=peaks(100);
 >> mean(std(a.'))

 ans =

     1.4223

 >> std(a(:))

 ans =

     1.8882