Visualizing Gabor filters using mesh
Ältere Kommentare anzeigen

Now, I have implemented the Gabor filter as : In my_gabor_filter.m, I have the following code :
function psi = my_gabor_filter(x,y,mu,nu,sigma)
phi = pi*mu/8;
f = sqrt(2);
k_max = pi/2;
k_nu = k_max/(f^nu);
k_vec = [k_nu*cos(phi),k_nu*sin(phi)]';
z_vec = [x,y]';
k_vec_norm = norm(k_vec);
z_vec_norm = norm(z_vec);
exp1 = (k_vec_norm/(sigma^2));
exp2 = (exp(-((k_vec_norm^2)*(z_vec_norm^2)/(2*sigma^2))));
exp3 = (exp(complex(0,k_vec'*z_vec))-exp(-(sigma^2/2)));
psi = exp1*exp2*exp3;
end
and, in plot_gabor_filter.m I did the following :
function plot_gabor_filter()
mu = 0;
nu = 0;
sigma = 1;
[X,Y] = meshgrid(0:1:39,0:1:39);
Z = my_gabor_filter(X, Y, mu, nu, sigma);
mesh(X,Y,Z,'EdgeColor','black')
end and when I run plot_gabor_filter.m, I get the following output :
>> plot_gabor_filter
Error using *
Inner matrix dimensions must agree.
Error in my_gabor_filter (line 17)
exp3 = (exp(complex(0,k_vec'*z_vec))-exp(-(sigma^2/2)));
Error in plot_gabor_filter (line 16)
Z = my_gabor_filter(X.^1 ,Y.^1,mu,nu,sigma);
So I have come this far. Kindly help me.
Akzeptierte Antwort
Weitere Antworten (1)
Wayne King
am 26 Jul. 2014
Unless you have posted the incorrect version of my_gabor_filter.m, I show that it errors on this line actually:
exp3 = (exp(complex(0,k_vec'*z_vec))-exp(-(sigma^2/2)));
k_vec is 2x1 and z_vec is 80x40 so multiplying k_vec' and z_vec is not going to work.
1 Kommentar
Guru Swaroop
am 27 Jul. 2014
Bearbeitet: Guru Swaroop
am 2 Okt. 2015
Kategorien
Mehr zu Image Arithmetic finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!