2016-03-21 25 views
2

This質問は、ガボールフィルタファミリとそのアプリケーションを非常によく説明しています。しかし、フィルタの波長(空間周波数)については何も記載されていない。ガボールウェーブレットの作成は、ループのために、以下に行われています。ガボールフィルタの空間周波数を計算するには?

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 

私は2番目のループ変数は、PI/8間隔の方向であることを知っています。しかし、私は最初のループ変数がこのコードとその関数[pixels/cycle]の空間周波数(波長)とどのようにリンクしているのか分かりません。誰も助けることができますか?

答えて

0

最後に答えが見つかりました。次のようにGaborWavelet関数が定義されている:Kmax最大周波数

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 

fは間隔因子であり、v解像度です。スペーシングファクタfは通常sqrt(2)とみなされます。 this紙、k= 2*pi*f*exp(i*ϑ)およびコードKmax=fmax*2*piに記載されていますが、これはフィルタの波長を見つけるための鍵です。私はまたthisの実装を読んで、波長が容易に見つけることができることに気づいたf = 1/lambdaここでλは正弦波の波長です。

たとえば、Kmax=pi/2およびv=0の場合、k=Kmax*exp(1i*u*pi/8)と上記の式を考慮して、lambda = 2*pi/Kmax = 4 [pixel/cycle]を考慮してください。

関連する問題