|
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 |
|