Toolbox ia870 | List of Figures | Fig. 3.25 | Fig. 3.29

Figure 3.28 - Digital morphological skeletons

Description

This figure illustrates the skeletonization by skeletal subsets.

Demo Script

 1 import numpy as np
 2 import ia870 as MT
 3 
 4 S = MT.iabinary([
 5  np.concatenate([np.zeros(28)]),
 6  np.concatenate([np.zeros(1), np.ones(16), np.zeros(11)]),
 7  np.concatenate([np.zeros(1), np.ones(26), np.zeros( 1)]),
 8  np.concatenate([np.zeros(1), np.ones(26), np.zeros( 1)]),
 9  np.concatenate([np.zeros(1), np.ones(26), np.zeros( 1)]),
10  np.concatenate([np.zeros(1), np.ones(26), np.zeros( 1)]),
11  np.concatenate([np.zeros(1), np.ones(24), np.zeros( 3)]),
12  np.concatenate([np.zeros(1), np.ones( 3), np.zeros( 6), np.ones(7), np.zeros( 11)]),
13  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
14  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
15  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
16  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
17  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
18  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
19  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
20  np.concatenate([np.zeros(10),np.ones( 7), np.zeros(11)]),
21  np.concatenate([np.zeros(10),np.ones( 7), np.zeros(11)]),
22  np.concatenate([np.zeros(10),np.ones( 7), np.zeros(11)]),
23  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
24  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
25  np.concatenate([np.zeros(11),np.ones( 7), np.zeros(10)]),
26  np.concatenate([np.zeros(11),np.ones( 7), np.zeros(10)]),
27  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
28  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
29  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
30  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
31  np.concatenate([np.zeros(11),np.ones( 6), np.zeros(11)]),
32  np.concatenate([np.zeros(12),np.ones( 6), np.zeros(10)])])
33 
34 NM = MT.iasubm(S,S);
35 NM[3,12]=1
36 
37 nm = MT.iadil(NM,MT.iasebox(2))
38 
39 NM = MT.iasubm(S,S);
40 NM[4,23]=1
41 
42 nm = MT.iaunion(nm,MT.iadil(NM, MT.iasebox()))
43 
44 MM = MT.iasubm(S,S);
45 MM[16,11]=1
46 
47 mm = MT.iadil(MM,MT.iasebox())
48 
49 MM = MT.iasubm(S,S);
50 MM[24,13]=1
51 
52 mm = MT.iaunion(mm,MT.iadil(MM,MT.iasebox(2)))
53 
54 fig_a = MT.iabshow(S,mm,nm)
55 s = MT.iaskelm(S, MT.iasebox())
56 
57 fig_b = MT.iabshow(S,s)
58 
59 adshow(MT.ianeg(fig_a), '(a) Maximal (dot) and nonmaximal “disks” (in gray)')
60 adshow(MT.ianeg(fig_b),'(b) digital morphological skeleton')

(a) Maximal (dot) and nonmaximal “disks” (in gray)

(b) digital morphological skeleton