我有一个图像,我想找出图像每一行的标准差,我将使用每一行的SD值来计算图像的平均SD。我知道查找SD (std)的函数,但我不知道如何开始/做。
发布于 2012-11-16 12:08:47
MATLAB中的图像仍然只是矩阵。由于您想要获取行的标准差,因此可以使用std(A,0,2)沿行获取标准差。然后,您可以在结果向量上再次使用std,以获得我认为您正在寻找的内容。
发布于 2012-11-16 14:06:24
如果您有灰度图像,请使用
mean(std(img.'))如果您有彩色图像(即ndims(img) == 3),则必须在数组的每一页上重复上述操作:
squeeze( mean(std(img,0,2)) )这将导致每一颜色层的每一行的平均标准偏差。
发布于 2012-11-16 14:32:30
与计算每一行的std然后取平均值不同,直接计算整个图像(所有像素值)的std不是更准确(也更简单)吗?这就是:
std(img(:));取每一行的std,然后取平均值并不完全是图像所有像素值的std……例如:
>> a=peaks(100);
>> mean(std(a.'))
ans =
1.4223
>> std(a(:))
ans =
1.8882https://stackoverflow.com/questions/13410071
复制相似问题