【发布时间】:2014-08-19 04:53:44
【问题描述】:
这是串行 Gabor 过滤器的代码。我遇到的问题是声明 J = J + abc 应该返回最终过滤图像作为所有过滤器的叠加,但只显示最后一次迭代的结果:
function [J] = gabor(I)
J = zeros(size(I));
for phi = 5*pi/8:pi/8:pi;
for theta = 1:0.5:2;
for filterSize = 4:6;
sigma = 0.65*theta;
G = zeros(filterSize);
for i=(0:filterSize-1)/filterSize
for j=(0:filterSize-1)/filterSize
xprime= j*cos(phi);
yprime= i*sin(phi);
K = exp(2*pi*theta*sqrt(-1)*(xprime+ yprime));
G(round((i+1)*filterSize),round((j+1)*filterSize)) = exp(-(i^2+j^2)/(sigma^2))*K;
end
end
abc = conv2(double(I),double(G),'same');
J = J + abc;
end
end
end
figure; imshow(J);
end
输出图像如下所示:
【问题讨论】: