我有一张图像,我想找到图像每一行的标准偏差,我将使用每行的 SD 值来计算图像的平均 SD。我知道查找 SD (std) 的功能,但我不知道如何开始/做什么。
问问题
9063 次
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 回答