【发布时间】:2013-04-27 17:38:40
【问题描述】:
谁能帮助我如何在 matlab 中显示 gabor 过滤器,我可以显示它,但它不是我想要的。这是我的代码:
[Gf,gabout] = gaborfilter1(B,sx,sy,f,theta(j));
G{m,n,i,j} = Gf;
这是 gabor 过滤器类:
function [Gf,gabout] = gaborfilter(I,Sx,Sy,f,theta);
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);
Gf(fix(Sx)+x+1,fix(Sy)+y+1) = exp(-.5*((xPrime/Sx)^2+(yPrime/Sy)^2))*cos(2*pi*f*xPrime);
end
end
Imgabout = conv2(I,double(imag(Gf)),'same');
Regabout = conv2(I,double(real(Gf)),'same');
gabout = sqrt(Imgabout.*Imgabout + Regabout.*Regabout);
然后,我用这段代码显示:
imshow(G{m,n,i,j},[]);
结果:
但我想要这个结果,有人可以帮我解决这个问题吗?
【问题讨论】:
-
我认为您需要发布更多代码以供我们帮助。例如,您显示了
gaborfilter函数,但没有显示gaborfilter1函数。他们是一样的吗?我假设您在循环中运行gaborfilter1,您可以发布该代码吗?我还怀疑您的 Gabor 过滤器公式是错误的。西格玛在哪里?你打算f做什么?
标签: matlab image-processing filter