创建具有截止点的高斯曲线

2024-09-28 01:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个截止点在e^(-2)的高斯图像,但我一直遇到错误。 我已经定义了我的高斯函数,我试图使它有一个布尔返回,但它不工作。你知道吗

import numpy as np
import scipy.misc


sizex=684
sizey=608

X = np.linspace(-sizex/2,sizex/2,sizex)
Y = np.linspace(-sizey/2,sizey/2,sizey)
xx, yy = np.meshgrid(X, Y, sparse=True)

def Gauss(xx,yy,centx,centy,sig):

    return 1/np.exp(((xx-centx)**2+(yy-centy)**2)/sig**2) > 1/np.exp(2)

t=Gauss(xx,yy,0,0,100)

scipy.misc.imsave('e6.bmp',t)

我不断得到以下错误: TypeError:numpy boolean subtract,-运算符已弃用,请改用按位异或、^运算符或逻辑异或函数。你知道吗

我做错什么了?你知道吗


Tags: 函数importnumpy错误npscipymiscxx
2条回答

看来scipy.misc.imsave文件()不适用于布尔。您可以将布尔数据转换为整数,如下所示:

scipy.misc.imsave('e6.bmp',t.astype(int))

线路

return 1/np.exp(((xx-centx)**2+(yy-centy)**2)/sig**2) > 1/np.exp(2)

如果上述不等式成立,则返回1(true),否则返回0。你知道吗

如果要将这些值设置为0,则应使用赋值:

result = 1/np.exp(((xx-centx)**2+(yy-centy)**2)/sig**2)
result[result <= 1/np.exp(2)] = 0
return result

相关问题 更多 >

    热门问题