微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在python中使用一维数组生成旋转对称函数?

如何解决如何在python中使用一维数组生成旋转对称函数?

我有一个一维数组,我想围绕它的中心旋转它以生成一个对称的二维数组。我该怎么做? 例如,我通过 scipy 定义了一个一维窗口数组,现在我想生成它的具有旋转对称性的二维版本。但是,numpy.outer 的结果不具有旋转对称性。

from scipy.signal import windows
import matplotlib.pyplot as plt
exp1 = windows.get_window(('exponential',None,5),60)
exp2d = np.sqrt(np.outer(exp1,exp1))
plt.imshow(exp2d)

enter image description here

我意识到如果一维窗口具有解析形式,那么做起来很简单。但是,对于没有解析形式的任意一维数组(函数),是否有一些通用的方法

解决方法

是的,这是可以做到的。这是一种可能的方法:

  1. 像这样生成一个“半径”图像,其中每个点的像素值是它与中心的距离:

    radius image

  2. 计算 f(radius),其中 f 是任何一维函数。例如:

    enter image description here

    或者,如果您有一个一维数组而不是函数,例如使用 scipy.interpolate.interp1d 插入它,例如 f = interpolate.interp1d(x,y)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。