2

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

4

3 回答 3

2

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

于 2012-11-16T04:08:46.710 回答
1

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

 std(img(:));

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

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

 ans =

     1.4223

 >> std(a(:))

 ans =

     1.8882
于 2012-11-16T06:32:30.030 回答
1

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

mean(std(img.'))

如果您有彩色图像(即ndims(img) == 3),则必须在数组的每一页上重复上述操作:

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

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

于 2012-11-16T06:06:24.317 回答