Diff of /Code/krisch.m [000000] .. [c28c68]

Switch to unified view

a b/Code/krisch.m
1
2
function img=krisch(i);
3
4
% Kirsch comapss masks edges detected in 8 directions
5
6
i=imresize(i,[256 256]);
7
% figure, imshow(i,[])
8
[r c]=size(i);
9
e=zeros(r+2,c+2);
10
for m=2:r+1
11
    for n=2:c+1
12
        e(m,n)=i(m-1,n-1);
13
        
14
    end
15
end
16
% figure, imshow(e,[])
17
no=zeros(r,c);
18
nw=zeros(r,c);
19
w=zeros(r,c);
20
sw=zeros(r,c);
21
s=zeros(r,c);
22
se=zeros(r,c);
23
ea=zeros(r,c);
24
ne=zeros(r,c);
25
for m=2:r+1
26
    for n=2:c+1
27
        no(m-1,n-1)=(e(m-1,n-1)*-3)+(e(m-1,n)*-3)+(e(m-1,n+1)*5)+(e(m,n-1)*-3)+(e(m,n)*0)+(e(m,n+1)*5)+(e(m+1,n-1)*-3)+(e(m+1,n)*-3)+(e(m+1,n+1)*5);
28
        nw(m-1,n-1)=(e(m-1,n-1)*-3)+(e(m-1,n)*5)+(e(m-1,n+1)*5)+(e(m,n-1)*-3)+(e(m,n)*0)+(e(m,n+1)*5)+(e(m+1,n-1)*-3)+(e(m+1,n)*-3)+(e(m+1,n+1)*-3);
29
        w(m-1,n-1)=(e(m-1,n-1)*5)+(e(m-1,n)*5)+(e(m-1,n+1)*5)+(e(m,n-1)*-3)+(e(m,n)*0)+(e(m,n+1)*-3)+(e(m+1,n-1)*-3)+(e(m+1,n)*-3)+(e(m+1,n+1)*-3);
30
        sw(m-1,n-1)=(e(m-1,n-1)*5)+(e(m-1,n)*5)+(e(m-1,n+1)*-3)+(e(m,n-1)*5)+(e(m,n)*0)+(e(m,n+1)*-3)+(e(m+1,n-1)*-3)+(e(m+1,n)*-3)+(e(m+1,n+1)*-3);
31
        s(m-1,n-1)=(e(m-1,n-1)*5)+(e(m-1,n)*-3)+(e(m-1,n+1)*-3)+(e(m,n-1)*5)+(e(m,n)*0)+(e(m,n+1)*-3)+(e(m+1,n-1)*5)+(e(m+1,n)*-3)+(e(m+1,n+1)*-3);
32
        se(m-1,n-1)=(e(m-1,n-1)*-3)+(e(m-1,n)*-3)+(e(m-1,n+1)*-3)+(e(m,n-1)*5)+(e(m,n)*0)+(e(m,n+1)*-3)+(e(m+1,n-1)*5)+(e(m+1,n)*5)+(e(m+1,n+1)*-3);
33
        ea(m-1,n-1)=(e(m-1,n-1)*-3)+(e(m-1,n)*-3)+(e(m-1,n+1)*-3)+(e(m,n-1)*-3)+(e(m,n)*0)+(e(m,n+1)*-3)+(e(m+1,n-1)*5)+(e(m+1,n)*5)+(e(m+1,n+1)*5);
34
        ne(m-1,n-1)=(e(m-1,n-1)*-3)+(e(m-1,n)*-3)+(e(m-1,n+1)*-3)+(e(m,n-1)*-3)+(e(m,n)*0)+(e(m,n+1)*5)+(e(m+1,n-1)*-3)+(e(m+1,n)*5)+(e(m+1,n+1)*5);
35
    end
36
end
37
38
img=double((no.^2 + nw.^2+ w.^2+ sw.^2+ s.^2+ se.^2+ ea.^2+ ne.^2).^(0.5));
39