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