如何恢复pyfftw对象?

2024-10-03 19:32:29 发布

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

也许这只是我的误解,但是如何重用pyfftw对象呢?你知道吗

当我运行如下代码时,img1_fftimg2_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对象(因为我所有的图像都是相同大小的),只需更改对象的输入。你知道吗


Tags: 对象fftemptyimg1img2shapedtypebuilders
1条回答
网友
1楼 · 发布于 2024-10-03 19:32:29

这是故意的。除了显式外,没有输出数组的副本,因此img2_fft is img1_fft返回True。你知道吗

可以使用.copy()复制输出,也可以从自己的数组显式地set the output array。你知道吗

相关问题 更多 >