【发布时间】:2010-11-09 03:55:18
【问题描述】:
scipy(或其他流行库)中是否内置了基于 FFT 的 2D 互相关或卷积函数?
有这样的功能:
-
scipy.signal.correlate2d- "convolveND实现的直接方法将是 大数据速度慢” -
scipy.ndimage.correlate- “数组与给定的内核相关,使用 精确计算(即不是 FFT)。” -
scipy.fftpack.convolve.convolve,虽然不是很懂,但是好像错了
numarray 有一个correlate2d() function with an fft=True switch,但我猜 numarray 被折叠了
进入numpy,找不到是否包含这个函数。
【问题讨论】:
-
请注意,使用精确计算(无 FFT)与说它很慢是完全一样的 :) 更准确地说,如果您有一个信号和一个大约为大小相同(如果内核比输入小得多,那么 FFT 实际上可能比直接计算慢)。
-
理想情况下,FFT 算法会自动处理零填充以达到最佳速度。
-
哦,您不是在谈论零填充,而是在谈论将 5x5 图像与 2000x2000 图像匹配。为什么算法不能仅仅猜测 FFT 是否会更有效,而选择哪种方式更快呢?
-
scipy 有一个 fftconvolve 函数docs.scipy.org/doc/scipy/reference/generated/…
标签: python image numpy signal-processing fft