我在使用numpy.random.normal时遇到了一些麻烦。在此链接的底部(http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html),有一个显示标准偏差的图表。我对此有点困惑,因为它看起来不像0.1,0.2,0.3等标准偏差。它也看起来不像1,2或3个标准偏差。
我要做的是在特定的标准偏差下为图像添加噪点。但是,我得到的结果实在是非常奇怪。我的代码(在Python中)如下所示:
poisson = float((raw_input("Noise standard deviation: ")))
.
.
.
name = t+'PHOTO'+s+str(i)+'.fits'
im = pf.open(name)
isinstance(im,list)
im0 = im[0]
poissonNoise = np.random.normal(0,poisson/1000, im0.data.shape).astype(float)
test = im0.data + poissonNoise
im0.data = test
stringee = 'NOISE'
pf.writeto(stringee+str(poisson)+name, data=test, clobber=True, header=im0.header)
print poisson
如果你注意到,我会分开" poisson"到1000,以获得有意义的结果。那么标准差的真正价值是什么,我该如何使用呢?我想做的就是能够输入1,2,3等标准偏差并产生很大的噪音。
答案 0 :(得分:2)
看起来你在混合各种东西。关于问题讨论的数字
X
轴仅为X
值不 Standard Deviations
。请记住,对于一个分布(此处为Normal
),只有一个单值标准差,可以轻松计算numpy.std
。
顺便说一下,您的代码不是安静的Python
代码。这是什么:isinstance(im,list)
是为了什么?还要记住,缩进是Python的核心。