📄 gabor2.m
字号:
function Y=gabor2(X1,X2)
[M,N]=size(X1);
X2=double(X2);
X3=zeros(M,N);
Y=zeros(M,N);
k1=0.15;
k2=0.10;
k3=-0.12;
k4=-0.2;
k5=0.15;
k6=0.2;
k7=-0.1;
k8=-0.2;
%-----------------------------
for i=5:M-4;
for j=5:N-4;
if ((X1(i,j)>=0)&(X1(i,j)<((pi/16)+k1+0.20)))|((X1(i,j)>=((15*pi/16)+k8-0.20))&(X1(i,j)<=(pi)));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(4,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if ((X1(i,j)>=0)&(X1(i,j)<((pi/16)+k1)))|((X1(i,j)>=((15*pi/16)+k8))&(X1(i,j)<=(pi)));
Y(i,j)=X3(i,j);
end
end
end
%---------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((pi/16)+k1-0.20))&(X1(i,j)<((3*pi/16)+k2+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(3,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((pi/16)+k1))&(X1(i,j)<((3*pi/16)+k2));
Y(i,j)=X3(i,j);
end
end
end
%----------------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((3*pi/16)+k2-0.20))&(X1(i,j)<((5*pi/16)+k3+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(2,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((3*pi/16)+k2))&(X1(i,j)<((5*pi/16)+k3));
Y(i,j)=X3(i,j);
end
end
end
%----------------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((5*pi/16)+k3-0.20))&(X1(i,j)<((7*pi/16)+k4+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(1,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((5*pi/16)+k3))&(X1(i,j)<((7*pi/16)+k4));
Y(i,j)=X3(i,j);
end
end
end
%----------------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((7*pi/16)+k4-0.20))&(X1(i,j)<((9*pi/16)+k5+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(0,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((7*pi/16)+k4))&(X1(i,j)<((9*pi/16)+k5));
Y(i,j)=X3(i,j);
end
end
end
%---------------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((9*pi/16)+k5-0.20))&(X1(i,j)<((11*pi/16)+k6+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(7,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((9*pi/16)+k5))&(X1(i,j)<((11*pi/16)+k6));
Y(i,j)=X3(i,j);
end
end
end
%----------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((11*pi/16)+k6-0.20))&(X1(i,j)<((13*pi/16)+k7+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(6,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((11*pi/16)+k6))&(X1(i,j)<((13*pi/16)+k7));
Y(i,j)=X3(i,j);
end
end
end
%------------------------------
X3=zeros(M,N);
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((13*pi/16)+k7-0.20))&(X1(i,j)<((15*pi/16)+k8+0.20));
X3(i,j)=X2(i,j);
end
end
end
gabor=gabor2d_sub(5,8);
X3=conv2fft(X3,gabor,'same');
for i=5:M-4;
for j=5:N-4;
if (X1(i,j)>=((13*pi/16)+k7))&(X1(i,j)<((15*pi/16)+k8));
Y(i,j)=X3(i,j);
end
end
end
imshow(mat2gray(Y))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -