Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 基于FFT的高斯模糊_Image Processing_Fft_Blur_Gaussian - Fatal编程技术网

Image processing 基于FFT的高斯模糊

Image processing 基于FFT的高斯模糊,image-processing,fft,blur,gaussian,Image Processing,Fft,Blur,Gaussian,我正在尝试使用FFT实现高斯模糊,在这里可以找到以下方法 这意味着你可以选择 图像的傅里叶变换及其应用 过滤器,乘以(复数) 结果,然后取反方向 傅里叶变换 我有一个内核K,一个7x7矩阵 和一个图像I,一个512x512矩阵 我不知道如何用K乘以I。 将K设为I(512x512)大小是实现这一目标的唯一方法吗?是的,您确实需要将K设为I大小,方法是用零填充。另外,在填充之后,但在对内核进行FFT之前,需要对其进行环绕平移,以便内核的中心(高斯峰值)位于(0,0)。否则,将翻译过滤后的图像。或者

我正在尝试使用FFT实现高斯模糊,在这里可以找到以下方法

这意味着你可以选择 图像的傅里叶变换及其应用 过滤器,乘以(复数) 结果,然后取反方向 傅里叶变换

我有一个内核K,一个7x7矩阵 和一个图像I,一个512x512矩阵

我不知道如何用K乘以I。
将K设为I(512x512)大小是实现这一目标的唯一方法吗?

是的,您确实需要将K设为I大小,方法是用零填充。另外,在填充之后,但在对内核进行FFT之前,需要对其进行环绕平移,以便内核的中心(高斯峰值)位于(0,0)。否则,将翻译过滤后的图像。或者,您可以在完成后转换生成的过滤图像


另一点:对于小内核,不使用FFT实际上可能更快。二维高斯核是可分离的,这意味着您可以将其分离为x和y的两个一维核。然后,您可以在空间域的x和y方向上进行两次1D卷积,而不是2D卷积。对于较小的内核,可能最终比使用FFT在频域中进行卷积更快。

如果您对像素着色器感到满意,并且如果FFT不是您的主要目标,但使用高斯模糊内核进行卷积是,-那么我可以推荐我的教程

问候