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

2024-09-30 16:24:03 发布

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

我有一个一维阵列,我想围绕它的中心旋转它,生成一个对称的二维阵列。我怎么做? 例如,我通过scipy定义了一个1D窗口数组,现在我想生成它的2D版本,它具有旋转对称性。但是,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

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


Tags: fromimportnumpy定义windowsnppltscipy
1条回答
网友
1楼 · 发布于 2024-09-30 16:24:03

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

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

    radius image

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

    enter image description here

    或者,如果您有一个1D数组而不是一个函数,则可以使用类似scipy.interpolate.interp1df = interpolate.interp1d(x, y)对其进行插值

相关问题 更多 >