1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
I1 = imread('image.tif');
I1=double(I1);
[n,m]=size(I1);
marge=10;
%la division de l'image
for k=1:marge+1:n-marge,
for g=1:marge+1:m-marge,
I=I1(k:k+marge,g:g+marge);
%l'orientation de bloc
[h,l]=size(I);
s3=0;s4=0;
for i=1:h-2
for j=1:l-2
s1=-I(i,j)+I(i,j+2)-2*I(i+1,j)+2*I(i+1,j+2)-I(i+2,j)+I(i+2,j+2);
s2=I(i,j)+2*I(i,j+1)+I(i,j+2)-I(i+2,j)-2*I(i+2,j+1)-I(i+2,j+2);
s3=s3-2*s1*s2;
s4=s4+(s2^2-s1^2);
end
end
s5=0.5*atand(s3/s4);
if s4<0
s5=s5+90;
elseif s4>=0
if s3<0
s5=s5+180;
else
end
else
end
%partie affiche des angles
if s5<15
I(8,1)=255;I(8,2)=255;I(8,3)=255;I(8,4)=255;
I(7,5)=255;I(7,6)=255;I(7,7)=255;I(6,8)=255;
I(6,9)=255;I(5,10)=255;I(5,11)=255;
else
if s5<35
I(9,1)=255;I(9,2)=255;I(9,3)=255;I(8,4)=255;
I(7,5)=255;I(7,6)=255;I(6,7)=255;I(5,8)=255;
I(4,9)=255;I(4,10)=255;I(3,11)=255;
else
if s5<50
I(2,10)=255;I(3,9)=255;I(4,8)=255;
I(5,7)=255;I(6,6)=255;I(7,5)=255;I(8,4)=255;
I(9,3)=255;I(10,2)=255;
else
if s5<60
I(11,1)=255;I(10,2)=255;I(9,3)=255;I(8,3)=255;
I(7,4)=255;I(6,5)=255;I(5,5)=255;I(4,6)=255;
I(3,7)=255;I(2,8)=255;I(1,9)=255;
else
if s5<75
I(11,1)=255;I(10,2)=255;I(9,2)=255;I(8,3)=255;
I(7,3)=255;I(6,4)=255;I(5,4)=255;I(4,5)=255;
I(3,5)=255;I(2,6)=255;I(1,6)=255;
else
if s5<90
I(11,5)=255;I(10,5)=255;I(9,5)=255;I(8,6)=255;
I(7,6)=255;I(6,6)=255;I(5,6)=255;I(4,6)=255;
I(3,7)=255;I(2,7)=255;I(1,7)=255;
else
if s5<100
I(11,7)=255;I(10,7)=255;I(9,7)=255;I(8,6)=255;
I(7,6)=255;I(6,6)=255;I(5,6)=255;I(4,6)=255;
I(3,5)=255;I(2,5)=255;I(1,5)=255;
else
if s5<110
I(11,8)=255;I(10,8)=255;I(9,8)=255;I(8,7)=255;
I(7,7)=255;I(6,6)=255;I(5,6)=255;I(4,5)=255;
I(3,5)=255;I(2,4)=255;I(1,4)=255;
else
if s5<125
I(11,11)=255;I(10,10)=255;I(9,9)=255;I(8,8)=255;
I(7,8)=255;I(6,7)=255;I(5,6)=255;I(4,5)=255;
I(3,5)=255;I(2,4)=255;
else
if s5<140
I(2,2)=255;I(3,3)=255;I(4,4)=255;
I(5,5)=255;I(6,6)=255;I(7,7)=255;I(8,8)=255;
I(9,9)=255;I(10,10)=255;
else
if s5<165
I(9,10)=255;I(8,9)=255;I(8,8)=255;
I(7,7)=255;I(6,6)=255;I(5,5)=255;I(4,4)=255;
I(4,3)=255;I(3,2)=255;
else
I(7,11)=255;I(7,10)=255;I(7,9)=255;I(7,8)=255;
I(6,7)=255;I(6,6)=255;I(6,5)=255;I(5,4)=255;
I(5,3)=255;I(5,2)=255;I(5,1)=255;
end
end
end
end
end
end
end
end
end
end
end
F(k:k+marge,g:g+marge)=I;
end
end
figure;
imshow(I1,[],'notruesize');
title('image originale')
figure;
imshow(F,[],'notruesize');
title('image de orientation') |
Partager