我有一个一维阵列,我想围绕它的中心旋转它,生成一个对称的二维阵列。我怎么做?
例如,我通过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)
我意识到,如果1D窗口有一个分析形式,那么做起来很简单。然而,对于没有解析形式的任意一维数组(函数),是否有一些通用方法
是的,这是可以做到的。以下是一种可能的方法:
生成这样的“半径”图像,其中在每个点,像素值是其与中心的距离:
计算
f(radius)
,其中f
是任何1D函数。例如:或者,如果您有一个1D数组而不是一个函数,则可以使用类似scipy.interpolate.interp1d的
f = interpolate.interp1d(x, y)
对其进行插值相关问题 更多 >
编程相关推荐