2016-03-21 86 views
2

This问题描述了gabor滤波器系列及其应用相当不错。虽然没有描述滤波器的波长(空间频率)。 Gabor小波的建立在for循环如下进行:如何计算Gabor滤波器中的空间频率?

for v = 0 : 4 
    for u = 1 : 8 
     GW = GaborWavelet (R, C, Kmax, f, u, v, Delt2); % Create the Gabor wavelets 
      figure(2); 
     subplot(5, 8, v * 8 + u),imshow (real(GW) ,[]); % Show the real part of Gabor wavelets 

     GW_ALL(v*8+u, :) = GW(:); 

    end 

    figure (3); 
    subplot(1, 5, v + 1),imshow (abs(GW),[]); % Show the magnitude of Gabor wavelets 

end 

我知道,第二循环变量是PI/8间隔方向。虽然,我不知道这个代码及其功能[pixels/cycle]中的第一个循环变量如何与空间频率(波长)相关联。谁能帮忙?

回答

0

我终于找到了答案。该GaborWavelet函数定义如下:

function GW = GaborWavelet (R, C, Kmax, f, u, v, Delt2) 
k = (Kmax/(f^v)) * exp(1i * u * pi/8);% Wave Vector 
kn2 = (abs(k))^2; 
GW = zeros (R , C); 
for m = -R/2 + 1 : R/2 
    for n = -C/2 + 1 : C/2 
     GW(m+R/2,n+C/2) = (kn2/Delt2) * exp(-0.5 * kn2 * (m^2 + n^2)/Delt2) * (exp(1i * (real(k) * m + imag (k) * n)) - exp (-0.5 * Delt2)); 
    end 
end 

Kmax为最大频率,f是间隔因子和v是分辨率。间距系数f通常被认为是sqrt(2)。 根据this论文,k= 2*pi*f*exp(i*ϑ)和代码Kmax=fmax*2*pi这是没有描述,是找到滤波器的波长的关键。我还读了this的实现,并注意到可以使用f = 1/lambda轻松找到波长,其中lambda是正弦波的波长。

因此,例如,如果Kmax=pi/2v=0,那么k=Kmax*exp(1i*u*pi/8)并考虑上述公式,lambda = 2*pi/Kmax = 4 [pixel/cycle]