多语言展示
当前在线:488今日阅读:19今日分享:20

【图像处理】怎么生成Gauss模版?

Gauss模版上面的数据,中心区域大,越往边界越小,这些数据服从Gauss分布。下图就是高斯分布的表达式。可以看出来,在σ大小固定的情况下,点(x,y)离原点越远,函数值越小。下面,我就用高斯分布的表达式,来给出各种高斯模版。
工具/原料
1

电脑

2

python

方法/步骤
1

先定义一个Gauss分布的表达式:import numpy as npe=np.epi=np.pid=0.9def g(x,y):    return e**(-(x**2+y**2)/(2*d**2))这里,我忽略了表达式的常数部分,只保留了指数函数的那部分。

2

构造一个3*3的模版,最初,所有的数值都等于0。moban=np.zeros((3,3),dtype=float)

3

Gauss分布,在x=y=0的时候有最大值,把这个最大值放到模版中心:moban[1,1]=g(0,0)

4

用for循环,把模版相应位置上的数值填满:for i in range(3):    for j in range(3):        moban[i,j]=g(i-1,j-1)

5

模版里面全是浮点数,我们想把数值调整为正整数。注意到模版角落里面的数值最小,所以把角落里面的数字正规化为1,而把其余数字除以最小值,并取整:for i in range(3):    for j in range(3):        moban[i,j]=int(g(i-1,j-1)/g(1,1))

6

包装这个函数gau(n),并用这个函数给出一个7阶的Gauss模版。

推荐信息