我有兴趣在NumPy中创建2D的Hanning、Hamming、Blackman等窗口。我知道NumPy存在针对1D版本的现成函数,例如np.blackman(51)
、np.hamming(51)
、np.kaiser(51)
、np.hanning(51)
等。
如何创建它们的2D版本?我不确定以下解决方案是否正确。
window1d = np.blackman(51)
window2d = np.sqrt(np.outer(window1d,window1d))
问题在于np.sqrt
只接受正数值,而np.outer(window1d,window1d)
肯定会有一些负数值。解决方案之一是放弃使用np.sqrt
。
有什么建议可以将这些1d函数扩展到2d吗?