dm-scripting中是否有FFT移位功能
Is there a FFT shift function in dm-scripting
我在 DM 中对复杂函数进行了 FFT。奇怪的是,预期的低频位于角落(见附图)。给后续处理带来了很大的不便
这让我想起了在 Python 和 numpy.fft.fft 中执行的类似结果,但是在 numpy(python) 中有一个 fftshift 函数可以将低频移动到中心.
在DM中有没有类似的功能对这样的FFT图像进行操作,以便将低频从角落转移到中心?
脚本计算的 FFT 的频率确实位于中心。
(注意,操作的输入必须是复杂的图像。)
image img := GetFrontImage()
ConvertToComplex( img )
ComplexImage fImg := FFT( img )
fImg.ShowImage()
但是,如果您看到您的频率 "shifted",那么您的 FFT 中很可能存在符号错误(或者,等效地,FFT 和 iFFT 的混合)。
但是要回答你的实际问题,是的,有这样一个命令,而且它实际上被记录在案:
void ShiftCenter( BasicImage image )
我在 DM 中对复杂函数进行了 FFT。奇怪的是,预期的低频位于角落(见附图)。给后续处理带来了很大的不便
这让我想起了在 Python 和 numpy.fft.fft 中执行的类似结果,但是在 numpy(python) 中有一个 fftshift 函数可以将低频移动到中心.
在DM中有没有类似的功能对这样的FFT图像进行操作,以便将低频从角落转移到中心?
脚本计算的 FFT 的频率确实位于中心。 (注意,操作的输入必须是复杂的图像。)
image img := GetFrontImage()
ConvertToComplex( img )
ComplexImage fImg := FFT( img )
fImg.ShowImage()
但是,如果您看到您的频率 "shifted",那么您的 FFT 中很可能存在符号错误(或者,等效地,FFT 和 iFFT 的混合)。
但是要回答你的实际问题,是的,有这样一个命令,而且它实际上被记录在案:
void ShiftCenter( BasicImage image )