std sigma 与 matlab 中的 fspecial sigma 不同

std sigma is not the same as fspecial sigma in matlab

f1 = fspecial('gaussian', 5, 5);

这在matlab中产生了一个5叉5矩阵,标准差为5。

但是当我这样做的时候

std(f1) 

答案不在 5 左右。

幕后到底发生了什么。

您分配给 fspecial 函数的标准不是输出过滤器值 (wieght) 的标准偏差。实际上该函数的输出是 bell-shaped 分布。要对此有更好的了解,请查看以下代码的夸张版本:

f1 = fspecial('gaussian', 50, 5)
surf(f1)

输入参数中的标准差是从具有双变量标准正态 PDF 的分布中抽取的样本的标准差。它显示了分布的形状,因此,std 值越小,中心值越高,其他地方值越低,std 值越高,形状越平坦。