clear all;
clc;
%%%%%%%%%%%%%%%%%%
%%%%读入图像%%%%
load('Tar0');
imshow(Im00);
title('origin image');
%I=imread('噪声原型.jpg');
%%%%%%%%%%%%%%%%%%
%%%%初始化%%%%%%%%
i=0;j=0;
num1=1;num2=5;
dir=0;
%%%%%%%%%%%%%%%%%%
%%%%求d(x,y)值%%%%
f=Im00;
[m1,n1]=size(f);
f1=[zeros(m1,1) f zeros(m1,1)];
f1=[zeros(1,n1+2);f1;zeros(1,n1+2)];
for i=1:m1
for j=1:n1
d(i,j)=sqrt([f1(i,j)-f1(i+2,j)]^2+[f1(i,j)-f1(i,j+2)]^2);
end
end
%%%%%%%%%%%%%%%%%%
%%%%图像边缘%%%%%%%
I=edge(f,'canny',[0.05,0.1],2.0);
figure(2);
imshow(I);
title('edge image');
%%%%%%%%%%%%%%%%%%
%%%%求四个方向值%%%
[m2,n2]=size(I);
I=[zeros(m2,1) I zeros(m2,1)];
I=[zeros(1,n2+2);I;zeros(1,n2+2)];
for i=3:m2-2
for j=3:n2-2
dir0=d(i-2,j)+d(i-1,j)+d(i,j)+d(i+1,j)+d(i+2,j);
dir90=d(i,j-2)+d(i,j-1)+d(i,j)+d(i,j+1)+d(i,j+2);
dir45=d(i-2,j+2)+d(i-1,j+1)+d(i,j)+d(i+1,j-1)+d(i+2,j-2);
dir135=d(i-2,j-2)+d(i-1,j-1)+d(i,j)+d(i+1,j+1)+d(i+2,j+2);
if(dir0>=dir90&&dir0>=dir45&&dir0>=dir135)
dir=dir0;
elseif (dir90>=dir0&&dir90>=dir45&&dir90>=dir135)
dir=dir90;
elseif (dir45>=dir0&&dir45>=dir90&&dir45>=dir135)
dir=dir45;
elseif (dir135>=dir0&&dir135>=dir90&&dir135>=dir45)
dir=dir135;
end
end
end
dir1=-1/dir;