gpt4 book ai didi

matlab代码: Gaussian blurring in fourier domain

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:26 24 4
gpt4 key购买 nike

我正在查看一些执行图像模糊处理的代码。但是,我无法理解代码,我想知道是否有人可以帮助我大致理解代码的作用。

这里变量“Iref”是一个图像。

Imin = min(Iref(:));

Iref_fft = Iref-Imin;
Iref_fft = fftshift(Iref_fft,1);
Iref_fft = fftshift(Iref_fft,2);

Iref_fft = fft(Iref_fft,[],1);
Iref_fft = fft(Iref_fft,[],2);

Iref_fft = fftshift(Iref_fft,1);
Iref_fft = fftshift(Iref_fft,2);

在这里,我已经对将 fftshift 应用于不在傅立叶域中的图像意味着什么感到困惑。所以,我可以看出它正在沿每个轴进行傅里叶变换,但为什么它在前后进行 fftshift?

代码如下:

Nx_r = 32;
Ny_r = 32;
sigma = 1.5;
wx = reshape(gausswin(Nx_r,sigma), [1 Nx_r]);
wy = reshape(gausswin(Ny_r,sigma), [Ny_r 1]);
wx_rep = repmat(wx, [Ny_r 1]);
wy_rep = repmat(wy, [1 Nx_r]);
Window = wx_rep .* wy_rep;

xIndices = floor((Nx-Nx_r)/2)+1 : floor((Nx-Nx_r)/2)+Nx_r;
yIndices = floor((Ny-Ny_r)/2)+1 : floor((Ny-Ny_r)/2)+Ny_r;

Iref_blurred = zeros(Ny,Nx);
Iref_blurred(yIndices,xIndices,:) = Iref_fft(yIndices,xIndices) .* Window;
Iref_blurred = fftshift( ifft2( fftshift(Iref_blurred) ) );
Iref_blurred = abs(Iref_blurred)+Imin;

在后续步骤中,我认为我们正在做高斯模糊。但是,我认为内核也必须在傅立叶域中生成,然后我们才能像下面这样将它们相乘:

Iref_blurred(yIndices,xIndices,:) = Iref_fft(yIndices,xIndices) .* Window;

我不确定 Window 是否是高斯卷积核的傅立叶变换,或者至少无法从代码中分辨出来。

因此,对于如何实现高斯模糊,我有点困惑。如果您能帮助理解这段代码,我们将不胜感激。

最佳答案

你是对的,这段代码中没有高斯的 FFT,但要记住(或学习)的是高斯的傅立叶空间表示也是高斯,只是标准偏差的倒数。编写这段代码的人可能知道这一点,或者他们只是忘记了并且很幸运。

请参阅名为 Gaussian Window and the Fouriergausswin 文档部分转换。文档中 gausswin 示例的精简版:

N = 64; n = -(N-1)/2:(N-1)/2; alpha = 8;
w = gausswin(N,alpha);
nfft = 4*N; freq = -pi:2*pi/nfft:pi-pi/nfft;
wdft = fftshift(fft(w,nfft));
plot(n,w)
hold on
plot(freq/pi,abs(wdft) / 10,'r')
title('Gaussian Window and FFT')
legend({'win = gausswin(64,8)','0.1 * abs(FFT(win))'})

enter image description here

因此,立即将 gausswin 的输出解释为傅里叶空间,而不执行 FFT,等同于空间域中具有更大 sigma 的高斯窗口。

关于matlab代码: Gaussian blurring in fourier domain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com