最近我学习了用于 TEM 图像处理的 DM_Script,我需要高斯模糊处理,我在http://www.dmscripting.com/recent_updates.html找到了一个名为“Gaussian Blur”的程序
该代码通过将源图像的快速傅里叶变换(FFT)乘以高斯核图像的FFT,最后对其进行傅里叶逆变换来实现高斯模糊算法。
这是代码的一部分,
// Carry out the convolution in Fourier space
compleximage fftkernelimg:=realFFT(kernelimg) (-> FFT of Gaussian-kernel image)
compleximage FFTSource:=realfft(warpimg) (-> FFT of source image)
compleximage FFTProduct:=FFTSource*fftkernelimg.modulus().sqrt()
realimage invFFT:=realIFFT(FFTProduct)
我想问的是这个 compleximage FFTProduct:=FFTSource*fftkernelimg.modulus().sqrt()
为什么高斯核的 FFT 需要 '.modulus().sqrt()' 进行卷积?
这与一个高斯函数的傅里叶变换变成另一个高斯函数有关吗?或者它与离散傅立叶变换的一种限制有关?
请回答我 谢谢