也许这只是我的误解,但是如何重用pyfftw对象呢?
当我运行类似以下代码的代码时,尽管接收到不同的输入,但img1_fft和img2_fft是相同的。当我取消注释重构fftwObj的代码行时,我得到了想要的输出。
inArray = pyfftw.empty_aligned(optimalSize, dtype='complex64')
inArray[ 0:img1.shape[0] , 0:img1.shape[1] ] = img1;
fftwObj = pyfftw.builders.fft2(inArray)
img1_fft = fftwObj(inArray)
inArray = pyfftw.empty_aligned(optimalSize, dtype='complex64')
inArray[ 0:img2.shape[0] , 0:img2.shape[1] ] = img2;
# fftwObj = pyfftw.builders.fft2(inArray)
img2_fft = fftwObj(inArray)我是不是做错了什么,因为整个“规划”的重点是不必重新构建pyfftw对象?我只想使用相同的pyfftw对象(因为我所有的图像都是相同的大小),并且只需要更改对象的输入。
发布于 2017-07-12 21:02:16
这是设计好的。除了显式,没有输出数组的副本,因此img2_fft is img1_fft返回True。
您可以使用.copy()复制输出,也可以显式地从您自己的数组执行set the output array。
https://stackoverflow.com/questions/45040416
复制相似问题