%%%%%%%VERSION 2 %%ANOTHER DESCRIBTION OF GABOR FILTER %The Gabor filter is basically a Gaussian (with variances sx and sy along x and y-axes respectively) %modulated by a complex sinusoid (with centre frequencies U and V along x and y-axes respectively) %described by the following equation %% % -1 x' ^ y' ^ %%% G(x,y,theta,f) = exp ([----{(----) 2+(----) 2}])*cos(2*pi*f*x'); % 2 sx' sy' %%% x' = x*cos(theta)+y*sin(theta); %%% y' = y*cos(theta)-x*sin(theta); %% Describtion : %% I : Input image %% Sx & Sy : Variances along x and y-axes respectively %% f : The frequency of the sinusoidal function %% theta : The orientation of Gabor filter %% G : The output filter as described above %% gabout : The output filtered image %% Author : Ahmad poursaberi e-mail : a.poursaberi@ece.ut.ac.ir %% Faulty of Engineering, Electrical&Computer Department,Tehran %% University,Iran,June 2004 function [G,gabout] = gaborfilter(I,sigma,f,theta,width); Sx=width; Sy=width; if isa(I,'double')~=1 I = double(I); end for x = -fix(Sx):fix(Sx) for y = -fix(Sy):fix(Sy) xPrime = x * cos(theta) + y * sin(theta); yPrime = y * cos(theta) - x * sin(theta); G(fix(Sx)+x+1,fix(Sy)+y+1) =exp(-.5*(xPrime^2+yPrime^2)/sigma.^2)*cos(2*pi*f*xPrime); end end Imgabout = conv2(I,double(imag(G)),'same'); Regabout = conv2(I,double(real(G)),'same'); gabout = sqrt(Imgabout.*Imgabout + Regabout.*Regabout); %%%%%×Ô¼º¼ÓµÄ %gabout=uint8(gabout);