📄 dirdetect.m
字号:
function M=dirdetect(f)
w=[0,0,0,0,0;0,0,0,0,0;0,0,1,0,0;0,0,0,0,0;0,0,0,0,0];
f=imfilter(f,w,'replicate','full');
[row,col]=size(f);
M=zeros(row,col);
g=zeros(5,5);
temp=zeros(1,25);
for i=3:row-2
for j=3:col-2
g=f(i-2:i+2,j-2:j+2);
temp=[g(1,:),g(2,5),g(2,4),g(2,3),g(2,2),g(2,1),g(3,:),g(4,5),g(4,4),g(4,3),g(4,2),g(4,1),g(5,:)];
temp=double(temp);
for k=2:25
z(k)=temp(k)-temp(k-1);
end
v0=sum(z.^2)/24;
temp=[g(1,1),g(2,1),g(3,1),g(4,1),g(5,1),g(5,2),g(4,2),g(3,2),g(2,2),g(1,2),g(1,3),g(2,3),g(3,3),g(4,3),g(5,3),g(5,4),g(4,4),g(3,4),g(2,4),g(1,4),g(1,5),g(2,5),g(3,5),g(4,5),g(5,5)];
temp=double(temp);
for k=2:25
z(k)=temp(k)-temp(k-1);
end
v1=sum(z.^2)/24;
temp=[g(1,1),g(2,1),g(1,2),g(1,3),g(2,2),g(3,1),g(4,1),g(3,2),g(2,3),g(1,4),g(1,5),g(2,4),g(3,3),g(4,2),g(5,1),g(5,2),g(4,3),g(3,4),g(2,5),g(3,5),g(4,4),g(5,3),g(5,4),g(4,5),g(5,5)];
temp=double(temp);
for k=2:25
z(k)=temp(k)-temp(k-1);
end
v2=sum(z.^2)/24;
temp=[g(1,5),g(2,5),g(1,4),g(1,3),g(2,4),g(3,5),g(4,5),g(3,4),g(2,3),g(1,2),g(1,1),g(2,2),g(3,3),g(4,4),g(5,5),g(5,4),g(4,3),g(3,2),g(2,1),g(3,1),g(4,2),g(5,3),g(5,2),g(4,1),g(5,1)];
temp=double(temp);
for k=2:25
z(k)=temp(k)-temp(k-1);
end
v3=sum(z.^2)/24;
V=[v0,v1,v2,v3];
V=double(V);
z=max(V)/min(V);
if z<1.060
M(i,j)=0;
elseif z>3.745
M(i,j)=1;
else
M(i,j)=(z-1.060)/(3.745-1.060);
end
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -