-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathident2.m
More file actions
81 lines (67 loc) · 1.99 KB
/
ident2.m
File metadata and controls
81 lines (67 loc) · 1.99 KB
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
function [ I ] = ident2( I_plot,matrix_index, centers, radii, a )
[C_wi,e] = hough_cap(a,10,10);
[start_X,end_X,start_Y,end_Y] = getNodes(e,15);
BW = edge(a,'sobel');
%figure, imshow(imcomplement(BW));
BW = imcomplement(BW);
N = [start_X; end_X; start_Y; end_Y];
w_x = abs(start_X - end_X);
w_y = abs(start_Y - end_Y);
[m,n] = size(N); % m=4 always, n=no. of nodes
N_m = [(start_X+end_X)/2; (start_Y+end_Y)/2];
N_wi = zeros(4,n);
r_w = [start_X; end_X;end_Y; end_Y+w_y];
l_w = [start_X; end_X;start_Y-w_y; start_Y];
d_w = [end_X; end_X+w_x ;start_Y; end_Y];
u_w = [start_X-w_x; start_X; start_Y; end_Y];
for i = 1:n
c_r = 0; % right
for j = max(1,r_w(1,i)) : min(size(BW,1),r_w(2,i))
for k = max(1,r_w(3,i)) : min(size(BW,2),r_w(4,i))
if (BW(j,k)== 0)
c_r = 1;
end
end
end
if (c_r == 1)
N_wi(1,i) = 1;
end
c_l = 0; % left
for j = max(1,l_w(1,i)) : min(size(BW,1),l_w(2,i))
for k = max(1,l_w(3,i)) : min(size(BW,2),l_w(4,i))
if (BW(j,k)== 0)
c_l = 1;
end
end
end
if (c_l == 1)
N_wi(2,i) = 1;
end
c_u = 0; % up
for j = max(1,u_w(1,i)) : min(size(BW,1),u_w(2,i))
for k = max(1,u_w(3,i)) : min(size(BW,2),u_w(4,i))
if (BW(j,k)== 0)
c_u = 1;
end
end
end
if (c_u == 1)
N_wi(3,i) = 1;
end
c_d = 0; % down
for j = max(1,d_w(1,i)) : min(size(BW,1),d_w(2,i))
for k = max(1,d_w(3,i)) : min(size(BW,2),d_w(4,i))
if (BW(j,k)== 0)
c_d = 1;
end
end
end
if (c_d == 1)
N_wi(4,i) = 1;
end
end
%T = [N_wi(4,:);N_wi(3,:);N_wi(2,:);N_wi(1,:)];
N_wi = N_wi';
N_m = [N_m(2,:); N_m(1,:)];
I = comp2mesh(I_plot, N_m, N_wi, C_wi, matrix_index, centers, radii);
end