2D tree object representation via the slope chain code

2D tree object representation via the slope chain code

Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎ Contents lists available at ScienceDirect Pattern Recognition journal homepage: www.elsevier.com/locate/pr 2D ...

3MB Sizes 0 Downloads 92 Views

Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

Contents lists available at ScienceDirect

Pattern Recognition journal homepage: www.elsevier.com/locate/pr

2D tree object representation via the slope chain code Ernesto Bribiesca a,n, Guadalupe Bribiesca-Contreras b a Departmento de Ciencias de la Computación, Instituto de Investigaciones en Matemáticas, Aplicadas y en Sistemas, Universidad Nacional Autónoma de México, Apdo. 20-726, México, D.F., 01000, Mexico b Laboratorio de Sistemática y Ecología de Equinodermos, Instituto de Ciencias del Mar y Limnología, Universidad Nacional Autónoma de México, Mexico

art ic l e i nf o

a b s t r a c t

Article history: Received 27 September 2013 Received in revised form 3 April 2014 Accepted 5 April 2014

A method for representing 2D (two-dimensional) tree objects is described. This representation is based on a chain code, which is called the Slope Chain Code (SCC). Thus, 2D tree objects are described by means of a chain of element strings suitably combined by means of parentheses. These 2D tree objects correspond to naturally existing 2D tree structures. This tree notation preserves the shape of trees (and the shape of their branches), allows us to know their topological and geometrical properties. The proposed notation of 2D tree objects is invariant under translation, rotation and, optionally, under scaling. Also, it is possible to define a unique start vertex for each tree via the unique path in the tree. Using this notation it is possible to obtain the mirror image of any tree with ease. Furthermore, two interesting properties of trees are presented: the accumulated slope and the tortuosity. Tortuosity is a very important property of trees and has many applications in different fields. In order to prove our method for representing 2D tree objects, we obtain some tree descriptors of tree objects and compute their measures of accumulated slope and tortuosity. Finally, we present some examples of 2D trees from the real world about echinoderm species identification. & 2014 Elsevier Ltd. All rights reserved.

Keywords: 2D tree objects 2D tree structures Tree descriptor Slope chain code Chain coding 2D tree representation Measure of tortuosity

1. Introduction Representation, matching and retrieval of the shape of naturally existing 2D tree structures are important topics in different fields, for instance in Biology and Medicine. Tree structures cover a wide variety of applications [1]. This paper deals with 2D tree representations by means of the SCC (the Slope Chain Code) [2,3]. Using the SCC, it is possible to preserve the shape of the initial object, and to obtain a simple 1D representation, easy to compute. The SCC of a curve is obtained by placing continuous straight-line segments of constant length around the curve (the endpoints of the straight-line segments coincide with points of the curve, so a better description of the curve is obtained), and computing the slope changes between contiguous straight-line segments scaled to a continuous range from  1 to 1. The SCC of a curve is independent of rotation, translation and, optionally, of scaling. In graph theory there is no unique way of drawing a graph; the relative positions of points representing vertices and lines representing branches have no significance [1]. However, in the proposed method for representing 2D tree objects, the topology and geometry of 2D tree structures should be preserved. In order to generate the tree descriptor, we use chain coding for

representing the geometry of the tree. Chain codes are the standard input format for numerous shape analysis algorithms [4]. Chain-code methods are widely used because they allow considerable data reduction and preserve information. The first approach for representing digital curves using the chain code was introduced by Freeman in 1961 [5]. The primitives chain code was described by O'Gorman [6]. This chain code (which represents 2D objects) is an extension of the Freeman chain code and is designed to preserve information on branching and junction topology. One of the drawbacks of usual graph based matching techniques (e.g., [7]) is that it does not take piecewise orientations into consideration. For instance, in Fig. 1, the two tree-like characters are quite different from one another. However, graph based algorithms relying on relative lengths of segments and topology of a tree can barely distinguish the differences. On the other hand, our proposed tree descriptor can easily discriminate between these characters. Ref. [8] describes a method for representing 3D tree objects using the orthogonal direction change chain code. Also, this method considers the topological and geometrical properties for 3D trees. The here proposed method for representing 2D tree objects is inspired by the above-mentioned paper. However, the main differences between both methods are as follows: Characteristics of the previous method for representing 3D tree objects.

n

Corresponding author. Fax: þ 52 5556223620. E-mail addresses: [email protected] (E. Bribiesca), [email protected] (G. Bribiesca-Contreras).

1. This method is based on the orthogonal direction change chain code for describing trees [8].

http://dx.doi.org/10.1016/j.patcog.2014.04.010 0031-3203/& 2014 Elsevier Ltd. All rights reserved.

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

2

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

2. Concepts and definitions To introduce our approach of 2D tree object representation using chain coding, a number of concepts and definitions [1] are presented below:

 An important consideration is the assumption that an entity has Fig. 1. Two tree-like characters.

2. It was proposed for 3D domain. 3. It uses a 3D grid, only orthogonal positions are allowed. 4. It is invariant under translation and rotation (orthogonal positions only). Characteristics of the proposed method for representing 2D tree objects. 1. This approach is based on the SCC [2]. 2. It was proposed for 2D domain. 3. It does not use a grid; the straight-line segment size (l) is always the same, for the whole curve; and the range of slope changes is unlimited (goes continuously from  1 to 1), the terminal points of the straight-line segments always intersect the curve, so a better description of the curve is obtained. 4. It is invariant under translation, rotation and, optionally, under scaling. Both methods consider the topology and geometry of trees and produce chains to represent them. In this work, we use the SCC for representing 2D tree objects. An interesting modification consists in discretizing the slope changes to previous defined values, which produce a sequence of discrete elements (a chain), i.e. the alphabet of the string (the chain) is finite. Thus, grammatical techniques [9–11] may be used for tree analysis. In this manner, we can manipulate the advantages and disadvantages of the continuous and discrete domains depending on our requirements. As already mentioned, the proposed 2D tree descriptor is invariant under translation and rotation. Furthermore, this descriptor is start vertex normalized via the unique path in the tree. Also, it is possible to obtain the mirror image of any tree with ease. To determine if two 2D tree objects have the same shape, it is only necessary to see if their chains are equal. In this manner, graph comparisons and tree searches [12,13] are eliminated. The proposed notation for representing and comparing the geometry and topology of 2D tree objects using chain coding preserves information and allows a considerable data reduction, which is an important advantage in image representation [14], computer vision, and pattern recognition. In summary, the contribution of this paper is a method for representing 2D tree objects by means of a simple 1D descriptor. This tree descriptor is described via a chain of element strings suitably combined by means of parentheses. Using this notation, the topology and geometry of trees are preserved. Considering that this tree descriptor is invariant under translation, rotation, and start vertex: it is possible to have a unique tree descriptor for each tree, which is an important advantage in graph comparison and tree searches. This paper is organized as follows. In Section 2 we present a number of concepts and definitions. Section 3 describes the method for representing 2D tree objects. Section 4 gives the independence of scaling and the measures of accumulated slope and tortuosity for 2D tree objects. Section 5 presents some results of tree objects. Finally, in Section 6 we present some conclusions.

         

been isolated from the real world. This is called the tree, and is defined as a result of previous processing. This previous processing may be skeleton representation or medial axis transform [12,14]. Thus, a 2D tree object corresponds to the skeleton representation of the 2D object. Generally speaking, skeletons are not exactly defined, they could be a result of a thinning procedure or a result of a medial axis transform. The result of the medial axis transform depends on the choice of the applied metric. Thus, the result is not always automatically a continuous curve. However, in the presented examples, we always obtained a continuous curve. The length l of each straight-line segment is considered equal to one. A graph is composed of a set of points called vertices v, joined by edges e. A graph is connected if there is a path between any two vertices of the graph. An acyclic graph is one that contains no cycles. A tree is a connected acyclic graph. In a tree, any two vertices are connected by a unique path and the number of edges (branches) is equal to the number of vertices minus one, i.e. e¼ v  1. A path in a graph is a sequence of edges which connect a sequence of vertices. A finite path always has a first vertex, termed its start vertex, and a last vertex called its end vertex. Both of them are named terminal vertices of the path. The degree of a vertex in a tree is the number of edges incident to it. The tree descriptor of a tree is defined by the computation of the chain elements of all its branches using the parenthesis notation.

3. 2D tree object representation The relative positions of points representing vertices and lines representing branches have no significance. Thus, there is no unique way of drawing a tree. However, in this work; we always consider the absolute positions of vertices of trees and the geometric configurations of their edges. These kinds of 2D tree objects correspond to the naturally existing 2D tree structures. Thus, the proposed description preserves the shape of trees, allows us to know their geometrical and topological properties. Definition 1. A chain a is an ordered sequence of n elements, and is represented by a ¼ a1 ; a2 ; …; an ¼ fai : 1 r i rng:

ð1Þ

Definition 2. An element ai of a chain indicates the slope change of the contiguous straight-line segments of the branch in that element position; this corresponds to angle of contingence. The range of the slope change goes continuously from 1 to 1 (see Fig. 2(c)). Fig. 2(a) illustrates an example of a tree on four vertices: A, B, C, and I, this tree has three branches: AI, BI, and CI. In order to obtain the chain of a tree, we must first choose the length of the

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

3

Fig. 2. An example of a tree: (a) a tree on four vertices; (b) a predetermined straight-line segment; (c) the range of slope changes [0,1) and [0,  1); (d) traversing the tree using circles; and (e) the discrete tree and its slope changes.

straight-line segments used to describe the above-mentioned tree. A branch with a thin isthmus (narrower than the length of the straight-line segment) will yield a loss of information. In this case, we recommend that segment length be decreased. The length of the straight-line segment defines the digitalization resolution. If the resolution is high, the number of chain elements is increased linearly depending on the characteristics of the branch. Once this length is fixed (Fig. 2(b)), we select a terminal vertex of the tree as our origin (see Fig. 2(a), the origin of the tree is represented by the vertex A, in this case our origin corresponds to the start vertex of the branch AI) and an endpoint of one of the straight linesegments is set to coincide with this origin. The opposite endpoint is set over the branch AI, determining the start point of the next segment, and so on. Graphically, this process amounts to superimposing a sequence of circles traversing the branch AI, where the intersections of branch AI and the circumferences of circles determine the points of the discrete branch (Fig. 2(d)). The radius of each circle corresponds to the length of the previous defined segment. We then determine the slope change between contiguous straight-line segments. Positive and zero slope changes are scaled to lie within the interval [0,1); negative slope changes are scaled to lie within the interval ( 1,0]. The sequence of slope changes is the chain which defines the discrete branch of the continuous branch (see Fig. 2(e)). Thus, the chain (see Fig. 2(e)) from the end vertex A to the branching vertex I is as follows: AI ¼ 0:1;  0:1; 0:025; 0:025;  0:037; 0:013; 0:05;  0:047 Remark 1. The number of straight-line segments q of a tree is equal to the number of slope changes n plus one, i.e., q ¼n þ1. 3.1. How to find the inverse of the chain of a branch? Proposition 1. The inverse of the chain of a branch is another chain formed of the opposite-sign elements of the first chain arranged in reverse order. In other words, the chain obtained by traveling the branch in one direction is just the reverse of the chain obtained traveling the

same branch in the opposite direction, changing from the positive to the negative sign or vice versa of each element. Thus, the inverse of the chain of the branch AI is as follows: IA ¼ 0:047;  0:05; 0:013; 0:037;  0:025;  0:025; 0:1;  0:1 In order to formalize the inverse operation for chains, we proposed to use a functional language style. We found it convenient to use the notation presented by Bird and Wadler [15], from which the implementation in a programming language like Haskell [16] is almost a direct transcription. Notice that the chain elements in Fig. 2(e) have a predetermined accuracy (10  3) in the slope changes; this may, of course, be changed. This accuracy generates a finite alphabet composed of 1999 symbols. For instance, a predetermined accuracy equal to (10  1) produces a finite alphabet composed of 19 symbols. In the content of this work, we always use a predetermined accuracy which will always produce a finite alphabet. When we have a finite alphabet it is possible to use grammatical techniques. We can use parsers to classify trees depending on their properties, for example, the occurrence of a branch within a tree or multiple occurrences of any branch within another branch. Definition 3. Let a label be an element of the interval (  1,1). A chain is a nonempty finite sequence of labels at a predetermined accuracy. In formal languages, the chains are the nonempty words of the language over an alphabet [17]. We define a chain by juxtaposing its labels. Except for this compact representation, in what follows, we will use the notation described in [15] for functional programming. In this field, sequences are called lists. Two functions over finite lists are the concatenation of two lists, represented by þ þ , and reverse, which reverses the order of elements in a list. We assume the basic properties of these functions, such as the associativity of þ þ, as well as reverse ðreverse aÞ ¼ a;

ð2Þ

reverse ða þ þ bÞ ¼ reverse b þ þ reverse a:

ð3Þ

Definition 4. The inverse chain, inv a, is defined as follows. inv a ¼ reverse ð  aÞ

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

4

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

Theorem 2. Let a and b be chains, then inv ða þ þbÞ ¼ inv b þ þ inv a.

CB ¼ 0:25; 0:2; 0:1;  0:1;  0:1; 0:09;  0:59; 0:05; 0:04;  0:1;  0:08;  0:2. The maximum chain corresponds to the branches AC and CA and the minimum absolute value of the first element of the chain corresponds to the branch AC. Thus, this chain corresponds to the unique path in the tree and therefore the vertex A is the origin or unique start vertex of the tree. The number m of all possible leaf-to-leaf paths in any tree composed of vl leaf vertices is defined by

Theorem 3. Let a1 ; …; an be chains, then



a can be expressed as a concatenation of two or more strings, a ¼ a1 þ þ a2 þ þ ⋯ þ þ an , where each ak ðk ¼ 1; …; nÞ belongs to either of the forms presented in the above-mentioned clause. Then inv a ¼ inv an þ þ ⋯ þ þ inv a2 þ þ inv a1 :

ð4Þ

Theorem 1. Let a be a chain, then inv ðinv aÞ ¼ a.

inv ða1 þ þ⋯ þ þan Þ ¼ inv an þ þ ⋯ þ þ inv a2 þ þinv a1 :

ð5Þ

3.2. Invariance under start vertex for 2D tree objects In order to find a unique tree descriptor, it is necessary to normalize the unique start vertex of the analyzed tree. So, in this manner we will always begin to construct the tree descriptor at the same vertex of the tree. Definition 5. In all cases, the vertices which are only considered for describing the kind of a tree are the terminal and branching vertices. Chain elements preserve their own points and it is not necessary to include them in the description of the tree. Definition 6. The unique start vertex of a tree on two vertices E and F represented by the chain a corresponds to the chain (a or inv a) whose absolute value of the first chain element is minimum. When the absolute values of the first elements of the chains a or inv a are equal, the next elements should be considered. 3.3. How to find the unique path of a tree? In order to select the unique start vertex of a tree composed of three or more edges, we have to find a unique path in the tree. Definition 7. By evaluating all possible permutations of terminal vertices, computing their chains, then selecting the maximum chain (represented by the first minimum element, also inverse chains are considered), one obtains the unique path in the tree. The unique start vertex belongs to this unique path and is defined by the direction of the chain which has the minimum absolute value of the first element of this path. In special cases, there may exist two identical unique paths in the same tree. In these cases, we recommend that the next path in the countdown be chosen. In this manner, we always ensure a unique path for each tree. Fig. 2(e) illustrates a tree composed of three branches. Fig. 2(e) shows the discrete version of the tree presented in (a), its terminal vertices are represented by the vertices A, B, and C. The node I is a branching, the place where three or more branches meet. Thus, all possible leaf-to-leaf paths in the tree shown in Fig. 2(e) are as follows: AB ¼ 0:1;  0:1; 0:025; 0:025;  0:037;  0:013; 0:05;  0:047; 0:29;  0:05;  0:04; 0:1; 0:08; 0:2 BA ¼  0:2;  0:08;  0:1; 0:04; 0:05; 0:29; 0:047;  0:05; 0:013; 0:037;  0:025;  0:025; 0:1; 0:1 AC ¼ 0:1;  0:1; 0:025; 0:025;  0:037;  0:013; 0:05;  0:047; 0:21; 0:09;  0:1;  0:1;  0:1; 0:2; 0:25 CA ¼  0:25;  0:2; 0:1; 0:1; 0:1;  0:09;  0:21; 0:047; 0:05; 0:013; 0:037; 0:025;  0:025; 0:1;  0:1 BC ¼ 0:2; 0:08; 0:1;  0:04;  0:05; 0:59;  0:09; 0:1; 0:1; 0:1;  0:2;  0:25 Note that in branch BC the sixth element 0.59 was generated, this is due to the direction change.

vl ! ; ðvl  2Þ!

8 vl Z 3:

ð6Þ

By Eq. (6) m is equal to ðvl Þðvl  1Þ. Therefore, the generation of the code takes quadratic time with respect to the size of the input tree. In Fig. 2(e) the unique path in the tree is represented by bold lines (henceforth, the unique paths of trees will be represented by bold lines and the origins of trees by points, respectively). 3.4. How to obtain the 2D-tree-object descriptor? The simplest output of a tree is the parenthesis notation [18]. Using this notation, there is a correspondence between trees and nested parentheses. So, in this subsection we address the representation of trees via a tree descriptor. Definition 8. Given the unique start vertex A. The tree descriptor of the tree is defined by the computation of the chain elements of all its branches using the parenthesis notation. In Fig. 2(e) we calculated the start vertex which was represented by the vertex A. Now, using the SCC we begin to compute the chain elements. So, the chain elements 0:1; 0:1; 0:025; 0:025;  0:037;  0:013; 0:05;  0:047 correspond to the branch AI. Now, the computation of the next chain element uses the vertex I which is a branching (the place where three or more branches meet). In what direction to go? In the case of the tree shown in Fig. 2(e), there are only two possible ways represented by the chain elements  0.29 and 0.21. We always select the directions in numerical order. Thus, first we select the direction represented by the chain element  0.29 and we obtain 0:1;  0:1; 0:025; 0:025;  0:037;  0:013; 0:05;  0:047; ð  0:29;  0:05;  0:04; 0:1; 0:08; 0:2Þ. The nested parenthesis describes the branch IB whose chain is ð 0:29;  0:05; 0:04; 0:1; 0:08; 0:2Þ. Then, we come back for node I and compute the chain of the next branch IC, which is ð0:21; 0:09;  0:1; 0:1;  0:1; 0:2; 0:25Þ. Finally, the representation of the tree descriptor of the tree shown in Fig. 2(e) is as follows: 0.1,  0.1, 0.025, 0.025,  0.037,  0.013, 0.05,  0.047 (  0.29,  0.05,  0.04, 0.1, 0.08, 0.2) (0.21, 0.09,  0.1, 0.1,  0.1, 0.2, 0.25). Notice that when we touch the branching vertex I, it is possible that an endpoint of the straight-line segment and the branching vertex do not coincide with each other. In this case, in order to compute the slope change in that position, select the nearest point of the analyzed branch. The nearest point corresponds to the intersection point between the analyzed branch and the circumference of the generated circle to compute the slope change. 3.5. Invariance under rotation for trees Taking into account the unique start vertex and the relative direction changes of the used chain code, the notation of the tree descriptor is invariant under rotation. Fig. 3 illustrates different rotations of the tree shown in Fig. 2(e). Fig. 3(b) presents a rotation of the tree presented in (a) and its slope changes. Fig. 3(c) shows another example of rotation of the tree presented in (a) and its chain elements. Notice that all tree descriptors of the discrete trees

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

5

Fig. 3. Independence of rotation for trees: (a) an example of a tree; (b) a rotation of the tree presented in (a); and (c) another rotation of the tree shown in (a).

are equal. Thus, they are invariant under rotation. The invariance under rotation for trees is due to the fact that we are only using the data of the slope changes.

4. The invariance under scaling and the proposed measures of accumulated slope and tortuosity for 2D tree objects The accumulated slope and tortuosity are intrinsic properties of trees.

3.6. How to obtain mirror images of trees? Using the tree descriptor, the mirror image of any 2D tree is obtained with ease. Proposition 2. The chain of the mirroring image of a branch is another chain (called mirroring chain) whose elements correspond to the opposite-sign elements of the chain of the above-mentioned branch. Theorem 4. Let a; a1 ; …; an be chains, then (i) mirror ðmirror aÞ ¼ a; (ii) mirror ða1 þ þ ⋯ þ þ an Þ ¼ mirror a1 þ þ⋯ þ þmirror an ; and (iii) inv ðmirror aÞ ¼ mirror ðinv aÞ. These properties follow immediately from the definitions. Considering Proposition 2 and Theorem 4 for tree descriptors: Proposition 3. The tree descriptor of the mirroring image of a tree is another descriptor (called mirroring descriptor) whose elements correspond to the opposite-sign elements of the descriptor of the above-mentioned tree, preserving its nested parentheses.

Definition 9. The invariance under scaling of a tree is obtained by normalizing the length of its unique path P to a fixed number q of straight-line segments around it. Fig. 5 illustrates an example of the invariance under scaling for two trees. Fig. 5(a) shows an example of a continuous tree and its origin at the vertex A. Fig. 5(b) shows the discrete version of the tree presented in (a). In this case, q ¼16; therefore, the length l of each straight-line segment is equal to the perimeter of the unique path Pa divided by q, i.e., l ¼ P a =q, where Pa ¼ 17.21, and q ¼16. Therefore, l ¼1.075. Fig. 5(c) presents a tree, which corresponds to the tree shown in (a) at different sizes. Using the same fixed number q of straightline segments: 16, we obtain the length of the segment for this curve as follows: l ¼ P b =q, where Pb ¼9.6, therefore l ¼0.6. Fig. 5(d) illustrates the discrete version of the tree presented in (c). The trees shown in Fig. 5(b) and (d) generate the following tree descriptor: 0.1, 0.1, 0.025, 0.025,  0.037,  0.013, 0.05, 0.047 (  0.29,  0.05,  0.04, 0.1, 0.08, 0.2) (0.21, 0.09,  0.1,  0.1, 0.1, 0.2, 0.25) Thus, this code is invariant under scaling. Definition 10. The accumulated slope Acc of a chain is the sum of the slope changes n around the tree, and is defined by n

Fig. 4 shows the mirror image of the tree shown in Fig. 2(e). Fig. 4(a) illustrates the tree presented in Fig. 2(e) and its slope changes. Fig. 4(b) shows the mirror image of the tree presented in (a) and its chain elements. Thus, the descriptor of the tree T is as follows: T¼ 0.1, 0.1, 0.025, 0.025,  0.037,  0.013, 0.05, 0.047 (  0.29,  0.05,  0.04, 0.1, 0.08, 0.2) (0.21, 0.09,  0.1,  0.1,  0.1, 0.2, 0.25) and its mirroring descriptor: mirror T¼  0.1, 0.1, 0.025, 0.025, 0.037, 0.013,  0.05, 0.047 (0.29, 0.05, 0.04,  0.1,  0.08, 0.2) (  0.21, 0.09, 0.1, 0.1, 0.1,  0.2,  0.25). In order to enhance the mirroring property of the tree descriptors, we have not sorted the parentheses in numerical order as it was mentioned in Section 3.4.

Acc ¼ ∑ ai :

ð7Þ

i¼1

The Acc of the tree shown in Fig. 2(e) is equal to 0.483. Definition 11. The tortuosity τ of a tree represented by a chain is the sum of all the absolute values of the chain elements, and is defined by n

τ ¼ ∑ jai j:

ð8Þ

i¼1

For example, the value of the tortuosity of the tree shown in Fig. 2(e) is equal to 2.207. From Eqs. (7) and (8), the absolute value

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

6

Fig. 4. The mirror image of a tree: (a) the tree shown in Fig. 2(e) and its chain elements; (b) the mirror image of the tree presented in (a) and its slope changes.

Fig. 5. Independence of size: (a) the continuous tree; (b) the discrete version of the tree shown in (a); (c) the tree presented in (a) at a different size; and (d) the discrete version of the tree shown in (c).

of the accumulated slope will always be less than or equal to the tortuosity, i.e. jAcc j rτ:

ð9Þ

The measure of tortuosity is invariant under the inverse of the chain and under the mirroring chain. The minimum value of tortuosity is equal to zero and corresponds to a tree on two vertices which is composed of n slope changes whose values are equal to zero, too. The above-mentioned tree corresponds to a straight line composed of n straight-line segments. On the other hand, the maximum measure of tortuosity of a tree on two vertices composed of n straight-line segments corresponds to the approximated value of n, i.e. the values of the slope changes will be 0.999…,  0.999…, 0.999…

4.1. Computation of convex and concave trees via the accumulated slope and tortuosity We define the concepts of convex and concave trees using the accumulated slope and tortuosity as follows: Definition 12. A tree is convex when the absolute value of the accumulated slope is equal to its tortuosity, i.e., jAcc j ¼ τ. Corollary 1. A tree is concave when the absolute value of the accumulated slope is less than its tortuosity, i.e., jAcc j o τ. Definition 12 and Corollary 1 allow us to differentiate two families of trees. For example, based on Definition 12, a chain composed of elements whose values are equal to zero describes a

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

7

Fig. 6. Examples of convex and concave trees: (a)–(c) show three examples of convex trees and (d)–(f) present three examples of concave trees.

tree which belongs to the family of convex trees. Fig. 6 shows some examples of convex and concave trees. The trees shown in Fig. 6(a), (b), and (c) belong to the family of convex trees. On the other hand the trees presented in Fig. 6(d), (e), and (f) belong to the family of concave trees. The main difference between the families of convex and concave trees is that the family of convex trees only have positive or negative values of slope changes, but not both. 4.2. The minimum and maximum values of tortuosity of trees The minimum value of tortuosity is equal to zero and corresponds to a tree on two vertices composed of one or more straight-line segments whose slope changes are equal to zero, i.e. τ¼ 0. On the other hand, the maximum value of tortuosity of any tree corresponds to the approximated value of n. Thus, for any tree the minimum and maximum values of tortuosity belong to the range [0,n). 4.3. The measure of normalized tortuosity The normalized tortuosity is defined as follows. Definition 13. The normalized tortuosity τN of a tree is equal to τ divided by n, i.e. τ τN ¼ : n

ð10Þ

The range of values of the normalized tortuosity is [0,1). The values of the normalized tortuosity vary continuously from 0 to close to 1. Thus, the value of the minimum measure normalized for a tree composed of n slope changes is zero. The tree which has a measure of tortuosity equal to zero corresponds to a tree on two vertices composed of one or more straight-line segments whose slope changes are equal to zero. On the other hand, the value of the maximum measure is approximately one.

Fig. 7. Examples of continuous trees: (a) an example of a tree on six vertices and (b) an example of a tree on 14 vertices.

The concept of normalized tortuosity may be a useful tool in tree classification. Imagine many trees to classify, for instance, we can say that trees whose values of normalized tortuosity are greater than or equal to 0.75 have major tortuosity.

5. Results To illustrate the capabilities of the 2D-tree-object descriptor and the measures of accumulated slope and tortuosity proposed here, we present two examples of 2D tree objects. Fig. 7(a) shows an example of a tree on six vertices. Fig. 7(b) presents an example of a tree on 14 vertices. Fig. 8(a) illustrates the discrete version of the tree on six vertices shown in Fig. 7(a). Fig. 8(b) presents the discrete version of the tree on 14 vertices illustrated in Fig. 7. In order to obtain the representation of the examples shown in Fig. 8, the Euclidean distance transform was applied to the examples of

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

8

that the proposed tree descriptors can be utilized as significant global spatial features for classification purposes. 5.1. Plane-filling trees

Fig. 8. Examples of discrete trees: (a) the discrete version of the tree presented in Fig. 7(a) and (b) the discrete version of the tree shown in Fig. 7(b).

Table 1 Values of the accumulated slope, tortuosity, and normalized tortuosity of the trees shown in Fig. 8. T

n

Acc

τ

τN

Tree descriptor

1

34

 .3

3.4

0.1

0; 0; 0; 0; 0; 0; 0; 0ð  :3;  :1;  :1;  :1; :1; :1; :2;  :1Þð :2;  :1; 0; :1; :1;  :2Þð:1; :1;  :2;  :1;  :1Þð:2; :1;  :1;  :1;  :1; :2; :3Þ

2

31

 .1

4.0

0.129

0; 0; 0; 0; 0; 0; 0ð :2;  :1ð  :2;  :1Þ ð:1;  :2Þð:2; :2ÞÞð:1;  :2ð :2;  :1Þð:1;  :2Þ ð:2; :2ÞÞð:2; :2ð  :2;  :1Þð:1;  :2Þð:2; :2ÞÞ

Fig. 7. In Table 1, we present the tree descriptors of the trees shown in Figs. 7 and 8. Notice that the chain elements of Trees 1 and 2 shown in Fig. 8 have a predetermined accuracy equal to (10  1), which produces a finite alphabet composed of 19 symbols, i.e. Σ ¼ f  :9;  :8; …; 0; …; :8; :9g. Thus, using the above-mentioned concepts grammatical techniques may be used, for example, the occurrence of a branch within a tree. A problem that may occur in practice is deciding whether or not a certain given branch occurs within a tree. Our method translates this problem into that of string matching, for which efficient algorithms exist [11]. See the tree descriptor of Tree 2. Another example is multiple occurrences of any branch within a tree. Another interesting problem of pattern recognition is that of determining if a tree is formed by the multiple occurrences of a given branch. Equivalently, we must be able to parse the language: fαn : α A Σ n ; n Z 2g. This language is not context-free, but we can write a Prolog program to have an implementation of such a parser. In the tree descriptor of Tree 2 we have multiple occurrences of the branches: ð  :2  :1Þ ð:1  :2Þð:2 :2Þ. The numbers of chain elements of Trees 1 and 2 are equal to 34 and 31, respectively (see Table 1). The accumulated slope Acc of Tree 1 is equal to  0.3 and the Acc of Tree 2 is equal to 0.1. The measure of tortuosity of Tree 1 is equal to 3.4 and the tortuosity of Tree 2 is equal to 4.0. Therefore, considering their values of accumulated slope and tortuosity, both trees belong to the family of concave trees. This is due to the fact that jAcc jo τ in both cases. Tree 2 is more tortuous than Tree 1. Also, the measures of normalized tortuosity of Trees 1 and 2 are presented in Table 1. The proposed method for representing 2D tree objects using chain coding is adequately reflecting the geometrical and topological properties of the trees that are being analyzed. This suggests

Fractal trees are often used in different fields. Fractal trees were primarily studied by Mandelbrot [19]. Fractal trees that are represented used the proposed notation of tree descriptors. In this manner, we only have a 1D (one-dimensional) representation by each fractal tree via the proposed tree descriptor based on the SCC. A plane-filling tree is a fractal tree that tends to occupy a defined plane as the number of iterations increases. In order to generate the chain, we propose the next recursive algorithm: first, an initial chain ð0:5ð0:5Þð 0:5ÞÞð  0:5ð0:5Þð  0:5ÞÞ was defined. Then, we replace ð0:5Þð  0:5Þ by ð0:5ð0:5Þð  0:5ÞÞð 0:5ð0:5Þ ð  0:5ÞÞ. This replacement may be repeated s times, where s is the number of iterations. As s tends to infinity, the tree will fill the plane. In the case of fractal trees, the length of the straight-line segments will change for each different stage of the fractal tree. If the scale factor is equal to p1ffiffi2, then the tree will fill the plane [20]. Fig. 9 illustrates from sixth to ninth stages of a plane-filling tree. Ref. [21] shows examples of some plane-filling trees using the orthogonal direction change chain code. 5.2. The 2D tree descriptor applied to the echinoderm species identification Integrative taxonomy is a multisource approach that takes advantage of complimentary disciplines which have been proposed in order to have rigor in species delimitation [22]. Besides, taxonomists have been using different tools to generate more accurate species inventories [23]. These are very important for conservation purposes, and to determine damage in some fragile ecosystems; e.g., to determine the damage that has been caused by the increasing tourist development in some areas such as Cozumel Island, Quintana Roo, Mexico [24]. Here, we proposed the 2D tree descriptor as a tool for species identification in spatangoid heart urchins (Echinodermata:Echinoidea:Spatangoida). These heart urchins, as well as many echinoderms, represent a significant source of food for fish and crustaceans in important fisheries. Also, they inhabit all marine ecosystems and are so abundant that they symbolize the ocean realm [25]. The taxonomy of many taxa of echinoderms is so complex that many experience is required in order to accurately identify species. Besides, most descriptions are qualitative and thus are subjective and limited by the authors. Several tools have been suggested in order to make this process less intricate and here we proposed a new approach. Species from this order could be identified using fascioles, petals, apical disc, peristome, periproct, labrum and some other morphological characters. Fascioles have been widely used, but some are lost during development. On the contrary, petals are conspicuous and are never lost during development. These vary in shape and development and are very important taxonomic characters in which we will focus. Most descriptions on this character are limited to the distal or proximal convergence or divergence of the posterior petals. With the 2D tree descriptor, we describe quantitatively the shape of the five petals. For the species of the genus Brissopsis L. Agassiz [26], petals have been barely described but its shape differs significantly between them (e.g., B. atlantica Mortensen, 1907 and B. alta Mortensen, 1907). We selected the unique start vertex at the most distal point of the anterior petal in order to have similar trees for comparison (see Figs. 10–18). This start vertex corresponds to the upper vertex of trees. Also, trees were obtained by hand, radiating from the genital pore all the way through each petal. Branches were drawn at half the length between each pair of pores from each petal (see

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

9

Fig. 9. From sixth to ninth stages of a plane-filling tree.

Fig. 10. Test of Brissopsis atlantica 1 Mortensen, 1907 and its obtained tree.

Figs. 10–18). In all cases, the resulting trees were classified as concave. We obtained nine trees, four from B. atlantica and five from B. alta. The tortuosity and normalized tortuosity values for each branch of every tree for all nine samples were calculated. Table 2 shows the tortuosity values of the branches of the abovementioned trees presented in Figs. 10–18. The values of tortuosity and normalized tortuosity of branches I are not illustrated in Table 2, this is due to the fact that these values are equal to zero.

Fig. 11. Test of Brissopsis atlantica 2 Mortensen, 1907 and its obtained tree.

We compared using the normalized tortuosity values and found that petals in B. atlantica have higher values than B. alta. Also, we found that the anterior petals (branches II and V) are similar in both species but the posterior petals (branches III and IV) allow us to discriminate between species. As mentioned, descriptions of

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

10

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

Fig. 14. Test of Brissopsis alta 1 Mortensen, 1907 and its obtained tree. Fig. 12. Test of Brissopsis atlantica 3 Mortensen, 1907 and its obtained tree.

Fig. 15. Test of Brissopsis alta 2 Mortensen, 1907 and its obtained tree. Fig. 13. Test of Brissopsis atlantica 4 Mortensen, 1907 and its obtained tree.

petals usually refer to the posterior pair. The normalized tortuosity values for this pair of petals (III and IV) are from 0.33 to 0.44 in the first species and from 0.006 to 0.023 in the second one. The posterior petals of B. atlantica have more tortuosity than in the other species. It is important to note that in this case the geometry of the trees is different while the topology is the same, and even though, discrimination between species was achieved. This method could be used as a tool to more accurately identify species. The obtained 2D trees descriptors for B. atlantica and B. alta are as follows, respectively: B. atlantica 1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.63,  0.06,  0.09, 0, 0.02, 0, 0.02, 0.01, 0, 0.02, 0.02, 0)(  0.23, 0.07, 0.14, 0.03,  0.01, 0.03, 0,  0.02,  0.03)(0.23,  0.09,  0.11, 0, 0, 0.04, 0.08, 0.02, 0.01)(0.64, 0.09, 0.09, 0, 0,  0.08,  0.02, 0, 0, 0, 0.02, 0.01)

B. atlantica 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.64, 0,  0.17,  0.02, 0, 0, 0.04, 0.02, 0, 0, 0.01, 0.01, 0)(  0.24, 0.08, 0.13, 0,  0.02,  0.02, 0.01,  0.04,  0.02, 0, 0)(0.24, 0.08,  0.13, 0, 0.02, 0.02, 0.01, 0.04, 0.02, 0, 0)(0.64, 0, 0.17, 0.02, 0, 0,  0.04,  0.02, 0, 0, 0.01,  0.01, 0) B. atlantica 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.69, 0.07, 0.07,  0.03, 0, 0.02, 0.05, 0.03, 0, 0.01, 0, 0.02, 0.04)(  0.18, 0, 0.16, 0,  0.02,  0.03,  0.02, 0,  0.04)(0.17,  0.03,  0.16, 0.02, 0, 0.03, 0.06, 0.02, 0)(0.69, 0.07, 0.07, 0.03, 0,  0.02,  0.05,  0.03, 0,  0.01, 0,  0.02,  0.04) B. atlantica 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.66,  0.11,  0.06,  0.07, 0.02, 0.03, 0.02, 0, 0.01,  0.01, 0, 0.01, 0.02)(  0.20, 0.07, 0.11, 0.05,  0.01, 0, 0,  0.01)(0.23,  0.11, 0.07, 0.02, 0.01, 0.02, 0.01, 0)(0.66, 0.11, 0.06, 0.07, 0.02,  0.03,  0.02, 0, 0.01, 0.01, 0,  0.01,  0.02)

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

11

Table 2 Values of tortuosity of the branches of the shown trees in Figs. 10–18. Tree B. B. B. B. B. B. B. B. B.

Fig. 16. Test of Brissopsis alta 3 Mortensen, 1907 and its obtained tree.

Fig. 17. Test of Brissopsis alta 4 Mortensen, 1907 and its obtained tree.

atlantica atlantica atlantica atlantica alta 1 alta 2 alta 3 alta 4 alta 5

1 2 3 4

τ II

τ III

τ IV

τV

τN II

τN III

τN IV

τN V

0.233 0.267 0.339 0.367 0.228 0.217 0.294 0.322 0.278

0.344 0.328 0.267 0.244 0.094 0.083 0.061 0.128 0.150

0.356 0.328 0.322 0.244 0.094 0.128 0.061 0.183 0.228

0.311 0.267 0.339 0.367 0.144 0.217 0.294 0.261 0.267

0.021 0.022 0.028 0.031 0.019 0.018 0.027 0.029 0.025

0.043 0.033 0.033 0.035 0.009 0.008 0.006 0.014 0.015

0.044 0.033 0.040 0.035 0.009 0.013 0.006 0.020 0.023

0.028 0.022 0.028 0.031 0.014 0.018 0.027 0.024 0.024

B. alta 1 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.64,  0.03,  0.09, 0, 0.01, 0.02, 0.03, 0.03, 0, 0, 0.02, 0, 0)(  0.22, 0, 0.07, 0, 0, 0.02, 0, 0, 0, 0.01, 0)(0.22, 0,  0.07, 0, 0,  0.02, 0, 0, 0,  0.01, 0)(0.70, 0, 0.07, 0.02, 0,  0.03,  0.02, 0, 0, 0, 0.01,  0.01, 0) B. alta 2 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.65,  0.01,  0.09, 0, 0, 0.02, 0.02, 0, 0.06, 0.01, 0, 0, 0)(  0.22, 0.01, 0.03, 0, 0, 0.01, 0.01, 0, 0.02, 0, 0)(0.24, 0,  0.13, 0, 0, 0, 0, 0, 0, 0, 0)(0.65, 0.01, 0.09, 0, 0, 0.02, 0.02, 0, 0.06, 0.01, 0, 0, 0) B. alta 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.63, 0,  0.14, 0, 0.05, 0.02, 0, 0.02, 0, 0, 0, 0.06)(  0.18, 0, 0.04, 0.01, 0,  0.01,  0.01, 0, 0, 0, 0)(0.18, 0,  0.04,  0.01, 0, 0.01, 0.01, 0, 0, 0, 0)(0.63, 0, 0.14, 0,  0.05,  0.02, 0,  0.02, 0, 0, 0,  0.06) B. alta 4 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.61,  0.06,  0.12, 0, 0, 0.02, 0.04, 0, 0.02, 0, 0.01, 0.06)(  0.24, 0, 0.13, 0, 0, 0, 0, 0, 0, 0) (0.29,  0.07,  0.08,  0.01, 0, 0,  0.01,  0.01, 0.01, 0)(0.64, 0.08, 0.08,  0.04,  0.02, 0, 0.01, 0.01,  0.03, 0, 0, 0) B. alta 5 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0(  0.58,  0.16, 0.04, 0.01, 0.01, 0, 0.03, 0, 0, 0, 0, 0.03)(  0.22, 0.04, 0.04, 0.01, 0.02,  0.01, 0,  0.02, 0, 0.01, 0)(0.26,  0.12,  0.06, 0.02, 0.02, 0, 0, 0, 0, 0, 0) (0.59, 0.11, 0.08,  0.03, 0, 0, 0, 0,  0.04, 0,  0.01,  0.01) Albeit this example serves to illustrate the above-mentioned method, the results suggest that the 2D tree object representation could be used for species identification in heart urchins.

6. Conclusions We have presented a method for representing 2D tree structures, which are described by a chain based on the SCC. The unique tree descriptor presented is invariant under translation and rotation. Furthermore, this descriptor is start vertex normalized by means of the computation of the unique path in the studied tree. Also, it is possible to obtain the mirror image of any tree with ease. This unique tree descriptor preserves the shape of trees (and the shape of their branches) allows us to know their geometrical and topological properties. The proposed notation for representing and comparing the geometry and topology of 2D tree objects using chain coding preserves information and allows a considerable data reduction, which is an important advantage in computer vision, image representation, and pattern recognition. The independence of scaling for 2D tree objects was solved. Also, the measures of accumulated slope and tortuosity were described. Conflict of interest statement Fig. 18. Test of Brissopsis alta 5 Mortensen, 1907 and its obtained tree.

None declared.

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i

12

E. Bribiesca, G. Bribiesca-Contreras / Pattern Recognition ∎ (∎∎∎∎) ∎∎∎–∎∎∎

Acknowledgments We want to express our gratitude to the anonymous referees for their invaluable comments. This research work was supported by IIMAS-UNAM and SNI-CONACyT. We also thank Dr. Francisco Alonso Solis-Marin for allowing the examination of specimens from the Coleccion Nacional de Equinodermos “Maria Elena Caso M.”, ICML, UNAM, and José Luis Sánchez Mena for their comments to the manuscript. References [1] J.A. Bondy, U.S.R. Murty, Graph Theory with Applications, MacMillan Press, London, 1976. [2] E. Bribiesca, A geometric structure for two-dimensional shapes and threedimensional surfaces, Pattern Recognit. 25 (1992) 483–496. [3] E. Bribiesca, A measure of tortuosity based on chain coding, Pattern Recognit. 46 (2013) 716–724. [4] R.M. Haralick, L.G. Shapiro, Computer and Robot Vision, 1st ed., AddisonWesley Longman Publishing Co. Inc., Boston, MA, USA, 1992. [5] H. Freeman, On the encoding of arbitrary geometric configurations, IRE Trans. Electron. Comput. EC-10 (1961) 260–268. [6] L. O'Gorman, Primitives chain code, in: A. Rosenfeld, L.G. Shapiro (Eds.), Progress in Computer Vision and Image Processing, Academic, San Diego, 1992, pp. 167–183. [7] K. Siddiki, A. Shokoufandeh, S. Dickinson, S. Zucker, Shock graphs and shape matching, Int. J. Comput. Vis. 30 (1999) 1–24. [8] E. Bribiesca, A method for representing 3D tree objects using chain coding, J. Vis. Commun. Image Represent. 19 (2008) 184–198. [9] J.E. Hopcroft, J.D. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979.

[10] L. Sterling, E. Shapiro, The Art of Prolog, MIT Press, 1986. [11] R. Baeza-Yates, G.H. Gonnet, A new approach to text searching, Commun. ACM 35 (10) (1992) 74–82. [12] R.O. Duda, P.E. Hart, Pattern Classification and Scene Analysis, John Wiley & Sons, Inc., New York, 1973. [13] D.H. Ballard, C.M. Brown, Computer Vision, Prentice-Hall, Englewood Cliffs, New Jersey, 1982. [14] R.C. Gonzalez, R.E. Woods, Digital Image Processing, 2nd ed., Prentice Hall, Upper Saddle River, New Jersey, 2002 07458. [15] R. Bird, P. Wadler, Introduction to Functional Programming, Prentice Hall, 1987. [16] P. Hudak, J.H. Fasel, A gentle introduction to Haskell, ACM SIGPLAN Not. 27 (May (5)) (1992) T1–T53. [17] E. Bribiesca, C. Velarde, A formal language approach for a 3D curve representation, Comput. Math. Appl. 42 (2001) 1571–1584. [18] A. Cayley, A theorem on trees, Q. J. Math. 23 (1889) 376–378. [19] B.B. Mandelbrot, The Fractal Geometry of Nature, Freeman, New York, 1983. [20] J.A. Gonzalez Rodriguez, A tutorial and recipe for moving fractal trees, Comput. Graphics 22 (1998) 301–305. [21] E. Bribiesca, N. Espinosa-Dominguez, Plane-and space-filling trees by means of chain coding, J. Appl. Res. Technol. 9 (2011) 145–155. [22] B.C. Schlick-Steiner, F.M. Steiner, B. Seifert, C. Stauffer, E. Christian, R.H. Crozier, Integrative taxonomy: a multisource approach to exploring biodiversity, Annu. Rev. Entomol. 55 (2010) 421–438. [23] J.M. Padial, A. Miralles, I. De la Riva, M. Vences, Front. Zool. 7 (2010) 16–29. [24] G. Bribiesca-Contreras, F.A. Solis-Marin, A. Laguarda-Figueras, A. ZaldivarRiveron, Identification of echinoderms (Echinodermata) from an anchialine cave in Cozumel Island, Mexico, using DNA barcodes, Mol. Ecol. Resour., http:// dx.doi.org/10.1111/1755-0998.12098, 2013. [25] G. Hendler, J.E. Miller, D.L. Pawson, P.M. Kier, Sea stars, sea urchins, and allies: echinoderms of Florida and the Caribbean, Smithsonian Institution, Washington (1995) 390. [26] D.K. Serafy, Memoirs of the Hourglass Cruises. V (III): Echinoids (Echinodermata: Echinoidea), Florida Department of Natural Resources, St. Petersburg, Florida, 1979, 120 pp.

Ernesto Bribiesca received the B.Sc. degree in electronics engineering from the Instituto Politécnico Nacional. He received the Ph.D. degree in mathematics from the Universidad Autónoma Metropolitana (UAM), he was a Researcher at the IBM Latin American Scientific Center, and at the Dirección General de Estudios del Territorio Nacional (DETENAL). He is an Associate Editor of the Pattern Recognition journal. He has been chosen twice for Honorable Mention winner of the Annual Pattern Recognition Society Award. Currently, he is a Professor at the Instituto de Investigaciones en Matemáticas Aplicadas y en Sistemas (IIMAS) at the Universidad Nacional Autónoma de México (UNAM), where he teaches graduate courses in Pattern Recognition.

Guadalupe Bribiesca-Contreras attended the Facultad de Ciencias from the Universidad Nacional Autónoma de México (UNAM) and graduated in 2011 as a Biologist. In 2013, she graduated from the Masters Program in Marine Sciences and Limnology from UNAM. She has focused on echinoderm taxonomy and is interested in multidisciplinary approaches which include genetics and image processing.

Please cite this article as: E. Bribiesca, G. Bribiesca-Contreras, 2D tree object representation via the slope chain code, Pattern Recognition (2014), http://dx.doi.org/10.1016/j.patcog.2014.04.010i