Pattern Recognition Vol. 17, No. 6, pp. 593-606, 1984.
0031 3203/84 $3.00+ .00 Pergamon Press Ltd. © 1984 Pattern Recognition Society
Printed in Great Britain.
THE ENCODING OF ARBITRARY SURFACES IN 3-DIMENSIONAL SPACE* G E R H A R D X. RITTER a n d JULIUS T . T o u
Center for Information Research, University of Florida, Gainesville, FL 32611, U.S.A.
(Received 24 January 1983; in revisedform 26 January 1984; receivedfor publication 5 April 1984) Absa'aet--A procedure is proposed which uses some basic aspects of topology for the description and encoding of arbitrary surfaces. Surfaces are triangulated in a specific way and the triangulation provides a simplicial chain code which is related to the octagonal chain code for planar curves. Encoding
Chain code
Digital topology
I. I N T R O D U C T I O N
In order to analyze, synthesize and manipulate arbitrary surfaces imbedded in 3-dimensional space by means of a digital computer, the need arises for precise means ofdescribing these surfaces. For example, ifone wishes to transmit the surface contour of an airplane over a communication link, the contour must first be described and encoded in a fashion that permits efficient transmission. The decoding at the receiving end should permit a faithful pictorial reconstruction of the airplane's surface. One approach to this problem consists of cutting the surface into arbitrarily small pieces and then approximating each piece with a standard mathematical surface. This approach raises several important questions. Should the pieces be uniform in size? Should they be small and, hence, great in number? What type of approximating surfaces (methods) should be used? Should the size of pieces or type of approximating surface depend on the type of surface to be encoded'? Whatever approach is being used, it is always highly desirable to have a coding scheme which is universally applicable to arbitrary types of surfaces, extremely simple, highly standardized, and capable of facilitating computer manipulation and analysis of surface properties. One of the simplest and most useful methods which permits the encoding of arbitrary plane curves is the grid-intersection scheme for octagonal chain coding." ~ Boyles and Ritter m described a grid intersection scheme for encoding arbitrary planar surfaces. The coding method they describe can be viewed as the 2-dimensional topological analog of the octagonal chain code. More precisely, the octagonal chain code for curves can be viewed as an oriented
Simplidal code
simplicial l-complex, while the code developed by Boyles and Ritter can be viewed as an oriented simplicial 2-complex (see Boyles and Ritter, m Hudson t6~ and Zeeman ~7~for the definition and properties of simplicial complexes). Because of the geometric realization of these two codes as simplicial complexes, the latter code has become known as the 'simpliciar code. Being the 2-dimensional topological analogue of the octagonal chain code, the simplicial code exhibits most of the manipulative properties of the octagonal code.m Furthermore, just as the octagonal code, the simplicial code contains only eight symbols and, hence, requires all binary three bit combinations. The coding method we describe in this paper is an extension of the simplicial code to non-planar surfaces. Some of the most important applications of the chain code have been in pattern recognition problems, and many have become standard techniques. Shape matching, ~a'9~ computer recognition of curved objects,11O.l 1~ motion analysis," 2.~ 31 connectivity analysis,,4.15, straight line determination 116~ and target classification are but a few of these applications. Since the simplicial code is just the 2-dimensional equivalent of the octagonal chain code, we have no doubt that many of the above applications will have analogues involving the simplicial code. In fact, a simplicial-code correlation which mimics the chain-code correlation by employing directional cosines has already been established. "7~ Fourier descriptors "s.19' for describing surfaces, based on the simplicial code have been used for recognizing and distinguishing a wide variety of surfaces. 12°~ II. DIGITAL SURFACES IN 3-SPACE
A digitalfigure in 3-dimensional Euclidean space is a finite array of grid points with integer coordinates. Each point P in such an array has 26 grid neighbors. We denote the set of neighbors by N(P). Thus, if P has * This work was supported by the Center for Information Research, University of Florida, Gainesville, Florida, U.S.A. coordinates (i, j, k), then 593
594
GERHARDX. RITTERand JULIUST. Tou Y
N ( P ) = {(x, y, z): 0 < [(i - x) 2 + (i - y)2
.~S v
+ (k - z)2] I/2 < v/z3 and x, y, z e Z } where Z denotes the set of integers. Henceforth, when referring to 'grid points', we shall always mean points having only integer coordinates. In order to describe an arbitrary surface in 3-space, we identify the grid points which lie closest to it. More precisely, connecting all grid points with lines that are parallel to the coordinate axes generates a set of orid lines. If the surface intersects such a grid line, then we identify the point ofintersection with the grid point on this line that is closest to it. If the surface intersects the line halfway between two grid points, we make the convention of choosing the grid point which lies in the positive direction with respect to the axis that is parallel to the line. The set of grid points thus obtained is called a dioital surface. In this paper we show that a digital surface forms a set of vertices of a 2-dimensional simplicial complex that describes a polyhedral surface. In particular, the polyhedral surface thus obtained is an approximation of the given surface by planar pieces consisting of triangles. Furthermore, the approximation can be made to within any given degree of accuracy by choosing a sufficiently fine grid. This follows from Bing's work on the approximation of surfaces in Euclidean 3-space E3, (21'22) which shows that for a given surface S in E 3 and a positive number c, there exists a homeomorphism h (a one-to-one continuous function with continuous inverse) from S into E a such that h(S) is a polyhedral surface and IIh(x) - x II < r. Grid size, of course, is predetermined by the given resolution when encoding graylevel surfaces. Analagous to planar simplicial encoding, the triangles compromising the polyhedral surface will give rise to the code we are about to describe.
H
X
Fig. l. The triangles associated with (F1, ,t). Henceforth, let C be a unit cube whose vertices are grid points. Any plane determined by the vertices of C must be parallel to one of the following planes: F 1 = {(x, y, z):z = 0}, F 2 = {(x, y, z):y = 0} F 3 = {(x, y, z):x = 0} F 4 = {(x, y, z):x = y} Fs
=
{(x, y, z):x = - y }
F6
=
{(x, y, z):x = z}
F 7 = {(x, y, z):x = - z } F 8 -- {(x, y, z):y = z} F 9 = {(x, y, z):y = --z} F l 0 = {(x, y, z):x + y - z = 0}
F11 = { ( x , y , z ) : x - y + z i l l SIMPLICIAL ENCODING
Fl2={(x,y,z):x-y-z=0}
In this section we define the alphabet of our code.
OeV2 e
IH3 a
=0}
0aHI a
0C~H2 cx
leV3 e
i~3 u
F13 = {(x, y, z):x + y + z = 0}.
O~V3 ~
2(IVl Ct
Fig. 2. The ten possible combinations of attaching two triangles of type t ".
Oe2 ~
2CtH3 ~
Encoding of arbitrary surfaces in 3-dimensional space
I; 9~:::/
I /
"Y
H
(a)
595
/
t-
/" /
, I
f
,
I
,t
IYHI a (b)
F2,Y)
Fig. 3. (a) The four basic triangles associated with (Fz, ?). (b) The attachment of two triangles lying in the orthogonal planes F 1 and F 2. d, and the four basic triangles associated with (F,, a) are shown in Fig. 1. Each triangle has a vertical, horizontal and diagonal (hypothenuse) side. We denote the vertical side by V and the horizontal side by H. If t is one of the triangles 0, 1, 2 or 3, then the symbol t~ means t is a triangle in some plane of (F~, ~). For the sake of convenience and readability, we shall write t ~ instead of ta and call the symbol t ~ a triangle. If t~ and tl are two triangles, then the symbol t; Vt~ means that t~ and tl are attached along their vertical ~" ~ i f i = 1 t,Ht side. Similarly, ~ ~2 and t~t2 ~ = mean that t~ and t~ are ~ f l i f i = 7, 8, 10 or I I attached along their horizontal and diagonal sides, d(F,)=|)~ifi=2,3,4or 5 respectively. The ten possible combinations are shown L ( S i f i = 6,9, 1 2 o r 13. in Fig. 2. By "possible" combinations, we mean that the We set d~ = d(Fi) and call it the directional sign of F~. intersection consists of a common edge. Thus, we do not allow combinations such as 1~2~ or V H 2 t The directional sign indicates the angle of intersection We set ? = d2. The four basic triangles associated between F , and F~ measured in a particular direction. with (F2, ?) are shown in Fig. 3(a). Observe that the For example, for i = 1, 7, 3 and 6, d~ corresponds to the angle ~,/~, ? and 6, respectively. However, these are horizontal edge H of a triangle t "¢corresponds to the horizontal edge of basic triangles t °. In particular, the exactly the angles between F~ and the planes F,, FT, Fa symbol I YH1~ means that 1 ~and 1 =are attached along and Fd, respectively, when measured clockwise in the x, z-plane, starting from the negative x-axis. Similarly, their common horizontal edge H as illustrated in Fig. 3(b). Again, t ~ = t v and we restrict ourselves to for i = 1, 8, 2 and 9, d i is the angle ~, ~, ? and 6. combinations that represent simplicial complexes, i.e. The set of all grid planes parallel to F~ will be triangles can only meet in a common edge or vertex. denoted by (F~, di). With each set (F~, d~), 1 < i < 9, we The directional sign y is also assigned to the planes associate four basic triangles. In particular, we let • =
Conversely, given one of the above planes, we can find three vertices of C such that the plane determined by the three vertices is parallel to the given plane. Any plane containing a grid point is called a grid plane if it is parallel to one of the above planes. We define a function d, which assigns to each plane F~ one of the angles ~ = 0 °, fl = 45 °, 7 = 90° or 6 = 135 ° , as follows:
-y Y
(a)
(b)
Fig. 4. (a) The four basic triangles associated with (F 3, y). (b) A possible attachment of three triangles lying in three mutually orthogonal grid planes.
596
GERHARDX. RITTERand JUl.llJS T. Tot) z
i'l
S ~-
y=x
0 4,Y) (a) S
/-
I
/'.,7/"
I
/
~
./
I
y=-x
7/--I->-'"
',
-
(b)
Z . . --T . . . .
"_2 _ i
7-7
. . . . .
-_-U/__
r,sT
"*"
I 2XSWlXS0a I
f=X
(c) Fig. 5. (a) The four basic triangles associated with (F,,, ~). {b) The four basic triangles associated with (Fs, ~'). (c) Attachment of triangles from F,t and F 5. F3, F , and F 5. Thus, d i = ? for i = 2, 3, 4 and 5. The four basic triangles associated with (F3, y) are shown in Fig. 4(a). The vertical side V of a triangle associated with (F3, ~) corresponds to vertical sides of triangles associated with (F~, a). However, the horizontal side H corresponds to vertical sides of triangles associated with (F2, ~). It is this labeling of edges that will distinguish triangles associated with (F~, ?) from those associated with (Fi, ?). In particular, 2rH 1r must lie in a plane of (F3, 3'). Thus, the directional sign ~, informs us that we are in a plane perpendicular to the (x, y)plane z = 0, while the assignments of edges H and V enables us to distinguish between triangles associated with (F2, Y) and (F3, ~'). On the other hand, the symbol 2 Y H V I rH1 ~ means that 2 ~ and 1 ~'are attached along
their horizontal and vertical edge, respectively, while 17. and 1" are attached along their common horizontal edge (Fig. 4(b)). Hence 2 YHV 17,means that a 90" corner is present. Furthermore, given the vertices of one of the triangles in the sequence 2 V H V l r H 1 ~, then we know the vertices of the remaining triangles. The two remaining sets orthogonal to (F I , ~) are (F 4, 7') and (Fs, ~). The four basic triangles associated with (F 4, ?) and (Fs, T) are shown in Figs 5(a) and 5(b), respectively. We introduce the letters S and W in order to label vertical and horizontal sides. The introduction of the two letters is necessary in order to obtain unambiguous representations of simplicial complexes. The simplicial complex representing the combination' 2rSWI~SO ~ is shown in Fig. 5(c). Again, S W tells us that a 90 ° corner is present. Thus 2)'and I >'in the combination 2~'SWl rmust lie in planes perpendicular to each other. Observe also that 1 ~'S0~ means that 1 y is attached along its S side to the diagonal side of 04. The directional sign assigned to F7 and F 8 will be denoted by/7, while the sign 3 will be assigned to F 6 and F 9. The basic triangles associated with (F6, 6), (F 7, /7), (F 8,/7) and (Fg, 6) are shown in Figs 6(a), (b), (c) and (d), respectively. The assignment of letters to the non-diagonal sides of these triangles is also displayed in Fig. 6. Thus, 3~H2a2~V1 a represents the simplicial complex shown in Fig. 7. Several observations are now in order. First note that a.'corner' is present when either the directional sign changes, as in the case illustrated in Fig. 7, or when two differently labelled sides appear in juxtaposition, as in 2~SW1 ~ (Fig. 5(c)). Next, observe that if we are given the vertices of the triangle 3 * in the sequence 3~H2a2*VI a, then the positions of the remaining triangles are uniquely determined by the sequence. Thus, for instance, 2 * cannot lie in a plane parallel to the plane containing 3 *, since 2 ~ and 2 a are attached along their common diagonal side and the diagonal side of 2 a cannot lie in such a plane. Finally, note that the intersection of grid points with any plane parallel to one of the planes Fi, i = 1, 2..... 9, consists of a rectangular array of grid points. However, the intersection of grid points with a plane parallel to one of the planes Fj, j = 10, 11, 12 or 13, results in a hexagonal array of grid points in that plane. Thus, only two triangles, denoted by 0 and 1, are necessary in order to describe any digital surface in such a plane, ts~ The directional sign assigned to Fro and F t t is/7, while 6 will denote the directional sign for Ft 2 and Ft 3The two basic triangles, together with their respective sides, associated with (Flo, /7), (Fit,/3), (FI2, 6) and (El3, 6) are shown in Figs 8(a), (b), (c) and (d), respectively. We again call the unmarked side the 'diagonal' side. Two examples of geometric configurations involving these triangles are given by the sequences
Encoding of arbitrary surfaces in 3-dimensional space
597
x=z
z~--z
//. (F7,13)
<
I//~~
W v
(a)
(b)
r=Z S
S
y=z (F9,6) ~x'~
~.
H
~y
/
xf
i
.i
(c)
I
-I/
(d)
Fig. 6. The four basic triangles associated with (F6, fi) (a), (FT, fl) (b), (F a, fl) (c) and (Fg, tg) (d).
z
~aHr*WOaSVFa
t..--T- . J
and
OavsOawO~svOq aw r "sv PH V, as shown in Fig. 9 and Fig. 10, respectively. We are now in a position to define the grammar of our code. We define ta -= td, where d denotes one of the directional signs ~, fl, y or 6. A simplicial letter refers to one of the letters H, V, S, W or the symbol t~. However, we shall also call td a triangle and H, V, S and W edges. An attaching rule As j is simply an instruction as to how triangle ti is attached to triangle tj. For instance, taking the example in Fig. 9, we have ttAi. 2 t2A2. 3 taA3. 4 t4A4. 5 t 5, where Al. 2 = H, A2. 3 = t# because of
iN' ~ - I
r.
,b_c_'y X
. . .
,-2%,,/-~-i=I
/
_b/
~
Fig. 7. The shaded triangles represent the simplicial complex 3~H2a26VIp. Note how the changes in slope and direction is represented by the directional signs.
598
GERHARDX. RrITER and JULIUST. Tou Z
s (FII, 8) (F~o, 8 ) / / -
//
r~__~
I
/
.~!~.
/
w
M/.] S~,../
X
y
X
(b)
(a)
(r12,6~/ "1
/ /
(r13,%- /
];t
a----T
w
y/f
~ __b/l i¢-
/._,
x - --~
x
(c)
(d)
Fig. 8. The two basic triangles associated with (F,o, fl) (a), (F n,/t) (b), (F12, 6) (c) and (F,3, 6) (d).
~.s.?q.s,,,,o~v1'3 Fig. 9.
A
configuration involving only triangles from I0 ..... 13.
Fi, i =
diagonal attachment, A3. 4 = W , A4.s = S V , t 1 = [ o, etc. Any finite string of simplicial letters written in juxtaposition, with triangles and attaching rules alternating, is called a simplicial word. If attaching the triangles of a simplicial word via the attaching rules in order of occurrence, as the word is read from left to right, yields a simplicial complex, then we say that the simplicial word can be realized as a polyhedral surface. A simplicial sentence is any simplicial word that can be realized as a polyhedral surface. In order to encode any type of surface, we need to introduce the notion of attaching a word to a sentence. Let $1, $2, ..., S~, Tt, T2, ..., T~ be simplicial letters, R = S I S 2 . . . S~ a simplicial sentence, and T = T I T 2 . . .
Encoding of arbitrary surfaces in 3-dimensional space
599
translating these symbols into binary notation, we require only four bit combinations to encode an arbitrary surface in 3-space. IV. T H E E N C O D I N G
PROCESS
Let ~ be an M x N x K array of lattice points
0BVS0BW06SV061BWI-6SVI6HI B Fig. 10. The simplicial code for an octahedral sphere. T~ a simplicial word. We say that T can be attached to R at Si if S~$2 ... S i T , T 2 ... T~ can be realized as a polyhedral surface so that the triangles determined by T do n o t intersect the interior of any triangle of R determined by Sl+ t ... Sk. If T can be attached to R at St, then we write
// (a)
R i , T - S I S 2 ... Si(SI+ l ... Sk) T I T 2 ... Tl,
and call R~ , T the simplicial sentence obtained by attaching T to R at Si. Thus, R i , T determines a polyhedral surface which can be realized first by realizing the surface determined by R and then attaching the triangles of T to the triangles of R by using S i T , T 2 . . . T~ as our sequence of instructions. Observe that ifi = k, then R~* T = S, ... S~Tt ... T t can be written as a word without parenthetic letters. The following example should clarify the concept of attaching a word T to a sentence R. Let
-
x/
(b)
R = 3W1 ~WOP2PWO~2~WI W2~WV1 ~OWH3 y and T = V2~H1 ~SOaW1 W2~HOaVI YH2WOaH2W1 ~WOa [aW[aSV[aH[~.
The simplicial complexes determined by R, U = 2~HI ~SOaW1W2~HOaV1 ~ H 2 W O a H 2 W I ~WOB[p WPSV[~H~ a
and R5 * T = 3rVI~W0a(2aW0a2aW1 rV2~OrVl~OVH39 V2 ~H 1 rSOaW1 W 2 rHOaV 1 rH2 rVOaH2 ~ V 1 r W O a l a W [ ~ S V I~H ~
are shown in Figs 11(a), (b) and (c), respectively. The attachment of T to R at Ss is indicated by the thickened edge. Henceforth, we shall include the parenthetic symbols ( and ) in our set of letters. Thus, we now have a list of 2* = 16 symbols, namely 0, 1, 2, 3, 0, i, H, V, S, W, a, fl, 7, ~ ( and ). The algorithm we are about to describe will show how a digital surface can be encoded with the use of these sixteen symbols. Hence,
(c) Fig. 11. (a) The geometric realization of the simplicial sentence R = 3rv1 rWOP2#WD~PW1 rv2rorv1 rOrVH3 r. (b) The sentence U = 2rill rSOWI rv2rttOaVl rH2rVO#H2rVI W "6FII#wTasvTaHTP. (c) The attachment of T = VUto R at $5, namely R_~* T = 3rVl rWO#(2#WO#2PW1 rl/2rOrVl rOVH3 r} V2rHI rSO WI rV2rl-lOaVl rH2rVg#H2rVI rWOlrfPwTasvT°~
uV.
600
GERHARDX. RITTER and JULIUST. Tou
having positive integer coordinates (m, n, k), where 1 < k _< K. Let F be a digital surface and assume without loss of generality that F does not meet the boundary of n. We shall further assume that F is derived as an approximation to a surface representable as a single valued functionf(x, y) = z, wherefcan be of arbitrary complexity and the graph of f may have almost vertical sections. This last condition is for the sake of simplicity and may be removed, as we shall subsequently point out. We encode F by expressing F as a simplicial sentence. In order to insure that the code represents a polyhedral surface, we need to specify some necessary conditions that simplicial letters in the code for F must satisfy. If t denotes a triangle associated with (Fi, d~), where 1 < i < 9, then t is a right triangle and the vertex v of t opposite the diagonal is called the right vertex oft. Let S e ( F , di) be the plane containing t. For 1 < i < 3, the two vertices in N(v) - S whose distance to v is unity are called the the vertices opposite v. For 4 < i < 9, let C be the unit cube containing t. Then the two vertices in (N(v) - S) c~ C with unit distance from v are called the vertices opposite v. For 4 _< i < 13 we note that S separates C into two subsets C, and C2. That is, C - S = C1 w C2, where Ct c~ C2 = 4, and C = (C1 w C2) u (C n S). We say that t is a letter f o r F if t satisfies the following two conditions: (1) the vertices of t are in F ; (2) for 1 _< i < 9, no more than one vertex opposite the right vertex of t can be in F, and for l0 < i < 13, at least one of Ct c~ F or C 2 n F is empty. For example, if F consists of the vertices of a unit cube, then the configuration shown in Fig. 12 contains letters that are not letters for F. In particular, both vertices opposite the right vertex of the triangle marked t are in F. Thus t is not a letter for F. It will follow from our encoding algorithm that the simplicial surface representing the code will be a cubical box without bottom. The encoding of F as a simplicial sentence is given by the following procedure. We scan the array n until we find three points that form a triangle which determines a letter for F. l f t t denotes this letter, then t I is the first letter in the simplicial sentence describing F, when read from left to right. We then attach triangles to the edges of t~ in accordance with the following rules. Given a triangle t in the partially completed sentence for F, then we attach a triangle t' to an unoccupied edge of t
Table 1 Triangle association
Edge order
(FI,~)
V ~ H ~ D--* V
(F2,7)
V--* H ~ D--* V
(Fs, y)
H--*V-'*D~H
(F,, y)
W'--, S ~ D - , W
(Fs, y)
S--* W ~ D--* S
(F6,6)
W --* V ~ D-* W
(F-t, fl)
W-~V--,D-~W
(Fs, 6 )
S-.*H~D-,S
(Fg, 6)
S--*H--*D-,S
(F~o, ~)
H --* D--* V --* H
(Flx, fl)
S--* D--* W ~ S
(Ft2, 6)
H ~ D ~ V --. H
(Fx3, 6 )
S~D~
by sequentially searching for the third vertex of t' using the search rules of Section B below. An edge oft is said to be occupied if it is also an edge of another triangle in the partial sentence or if no letter for F can be attached to t along this edge. The rules as to which unoccupied edge of t we attach the n e x t triangle t' are given in Table 1. The search for the third vertex of t' stops as soon as t' satisfies the attachment rules of section A. A. Attaching rules
A triangle t' can be attached to t if the following three properties are satisfied: (1) t' is a letter for F ; (2) t' does not intersect the interior of a preceding (previously attached) triangle and no edge of t' is an edge of more than one preceding triangle ; (3) ift' is associated with (Fi, d3, i # 2, 3, 4 or 5, then no vertical line passing through an interior point of t' intersects a preceding triangle. We remark that condition (3) is the removable 'single valued function' restriction mentioned earlier. We shall also show that condition (2) may be weakened by letting an edge of t' belong to more than one previously attached triangle. This will enable the encoding of surfaces with self intersections. The extra constraints are imposed for the sake of simplicity. It may be possible that no further triangles can be attached to tl, in which case the code for F is given by
0642
Fig. 12. The letter t cannot be a letter for the digital surface shown since the two vertices opposite its right vertex are elements of the digital surface.
W--,S
(a)
(b)
050 (c)
Fig. 13. (b), (c) Possible ways of encoding the figure in (a).
Encoding of arbitrary surfaces in 3-dimensional space tj. O t h e r w i s e , let tl. ~ d e n o t e t h e first a n d tx. 2 the s e c o n d (if possible) triangle a t t a c h e d to t 1. T h e algor i t h m p r o c e e d s by a t t a c h i n g triangles satisfying c o n d i t i o n s (1), (2) a n d (3) to the u n o c c u p i e d edges of t I a a n d t h e n to the u n o c c u p i e d edges of tl.2. T h e algor i t h m c o n t i n u e s by a t t a c h i n g triangles to the u n o c c u p i e d edge of tl.t.~, t h e first triangle a t t a c h e d to tl ,~, t h e n to t~ .2 a, the first t r i a n g l e a t t a c h e d to ta .2, etc., until all triangles of f o r m t~ s j, i,j = 1, 2, have o c c u p i e d edges. T h e a l g o r i t h m t h e n p r o c e e d s to t~.xaa, a n d c o n t i n u e s in this f a s h i o n until n o m o r e triangles satisfying the a t t a c h m e n t rules c a n be found. T h u s , t h e e n c o d i n g m e t h o d is essentially the s a m e as the treea l g o r i t h m d e s c r i b e d in Boyles, tS~ except t h a t m o r e c o m p l e x b r a n c h i n g m a y occur. B. Search rules Let t = P Q R be a t r i a n g l e in the p a r t i a l l y c o m p l e t e d sentence for F, a n d s u p p o s e we w a n t to c h e c k w h e t h e r or n o t a t r i a n g l e t' c a n be a t t a c h e d to the side P Q of t. T h u s , we n e e d to find a vertex R' such t h a t the triangle t' = P Q R ' satisfies the a t t a c h m e n t rules of Section A. T h e search for R' d e p e n d s u p o n t h e c o o r d i n a t e s of P, Q a n d R, a n d is therefore divided i n t o s e p a r a t e cases. T h r o u g h o u t this discussion let R = (ra', n', k'). Case (a). P = (m, n, k) a n d Q = (m, n, k + 1). Set Po = (m', n', k + 1) a n d let Po, P ~ , . . - P7 d e n o t e t h e e i g h t n e i g h b o r s of Q w h o s e z - c o o r d i n a t e is k + 1. F u r t h e r m o r e , s t a r t i n g at Po, let t h e s u b s c r i p t s be s u c h t h a t Pi+ ~ follows Pi as we traverse the p o i n t s in a c o u n t e r clockwise d i r e c t i o n with respect to the (x, y)c o o r d i n a t e system. Similarly, let Qo = (m', n', k) a n d Qo, Q~ . . . . . Q7 d e n o t e the n e i g h b o r s of Q such t h a t Qi h a s z - c o o r d i n a t e k a n d p r e c e d e s Q i + l as we traverse these p o i n t s in a c o u n t e r c l o c k w i s e direction. F o r i = 1, 2,..., 7, set R2i_ 1 = Pi a n d R2i = Qi. S t a r t i n g with R~ a n d testing the R~'s in o r d e r of i n c r e a s i n g subscripts, let R' be the first p o i n t R~ f o u n d for w h i c h the triangle t' -A P Q R ' c a n be a t t a c h e d to PQ in a c c o r d a n c e with the rules A. H e n c e f o r t h we shall a l w a y s search for R' b y s e a r c h ing the s e q u e n c e {R~} in o r d e r of i n c r e a s i n g subscripts. Case (b ). P = ( m , n , k ) a n d Q = (m + 1, n , k ) . T h e n R1 = ( m , n , k + 1 ) , R 2 = (m + 1, n , k + 1 ) , R 3 = (m, n - 1, k + l ) , R 4 = (m + l , n 1, k + I ) , R 5 = (m, n+ l,k + l),R 6 = (m+ l,n+ l,k+ 1 ) , R 7 = (m, n - l, k), Rs = (m + l , n - 1, k), R9 = ( m , n + 1, k), R i o = (m + l , n + 1 , k ) , R , x = (m,n - 1,k - 1),Rx2 = (m + 1,n - l , k - 1 ) , R I a = (ra, n + l , k - I ) , R t 4 = (m + 1, n + 1, k - 1),R15 = ( m , n , k - l ) a n d R16 = ( m + 1, n , k 1). Case (c ) . P = ( m , n , k ) a n d Q = ( m , n + l , k ) . T h e n Rj = (m,n,k + l),R z = (m,n+ l,k + l),R a = ( m - 1, n , k + l ) , R 4 = ( m - 1, n + 1, k + 1 ) , R s = ( m + 1, n , k + l ) , R 6 = ( m + 1, n + 1, k + 1 ) , R 7 = (m - 1, n , k ) , R s = (m - 1, n + 1, k ) , R 9 = (m + 1, n, k ) , R l o = (m + 1, n + l , k ) , R x l = (ra - 1, n , k - 1), R t 2 = (m - 1, n + 1,k - 1),R13 = (m + l , n , k - l), R l 4 = (m + 1, n + 1, k - 1),Ra5 = ( m , n , k - 1 ) a n d PR 1 7 : 6 - B
601
R I 6 = (m + 1, n, k -
1). T h u s C a s e (c) is the s a m e as C a s e (b), except t h a t the x- a n d y - c o o r d i n a t e s are interchanged. Case (d). P = ( m , n , k ) a n d Q = (m + 1, n + 1, k). T h e n R 1 = ( m , n , k + 1),R 2 = (m + 1, n + 1, k + 1), R 3 = ( m , n + 1,k + I ) , R 4 = (m + 1, n , k + 1),R s = (m, n + 1, k), R 6 = (m + 1, n, k), R 7 = (m, n + 1, k - I ) , R s = (m + 1 , n , k - l ) , R 9 = ( m , n , k - l ) a n d Rio = (m+ l,n+ 1, k - l). Case (e). P = ( m , n , k ) a n d Q = (m + l , n - 1, k). T h e n R 1 = ( m , n , k + l ) , R 2 = (m + 1,n - 1,k),R 3 = (m,n1, k + 1 ) , R 4 = ( m + 1, n , k + 1 ) , R s = (m, n - l , k ) , R 6 = (m + 1, n , k ) , R 7 = ( m , n - 1, k - 1), R 8 = (m + 1 , n , k - 1),R 9 = ( m , n , k - 1 ) a n d R l o = (m+l,n-l,k-1). C a s e ( f ) . P = ( m , n , k ) a n d Q = ( m + 1, n , k 1). T h e n R 1 = (m + 1 , n , k ) , R 2 = (m + 1,n + 1 , k ) , R 3 = (m + 1, n - 1, k ) , R 4 = ( m , n + 1, k ) , R 5 = ( m , n - l, k ) , R 6 = ( m + 1, n + 1, k - I ) , R 7 = ( m + 1, n - 1, k - 1),R s = (m,n + l , k - 1),R9 = (m,n - 1,k - 1) a n d R i o = (m, n, k - 1). Case (9). P = ( m , n , k ) a n d Q = (m + l, n, k + 1). T h e n R 1 = ( m , n , k + l ) , R 2 = (m,n + l , k + l ) , R 3 = (re, n - 1, k + 1 ) , R 4 = ( m + l , n + 1, k + 1 ) , R s = (m+ l,n1, k + 1 ) , R 6 = ( m , n + 1, k), R 7 = (m. n - 1 , k ) , R s = (m + l , n + 1 , k ) , R 9 = (m + 1,n - 1. k) a n d R i o = (m + 1, n, k). C a s e ( h ) . P = ( m , n , k ) a n d Q = ( m , n + 1, k - 1). T h e n R 1 = (m,n + 1 , k ) , R 2 = ( m - 1,n + 1,k),R 3 = (m + 1, n + 1, k ) , R 4 = (m - 1, n , k ) , R 5 = (m + 1, n, k ) , R 6 = ( m - 1, n + 1, k - 1),R7 = ( m + 1, n + l, k - 1),R s = ( m - 1 , n , k 1),R 9 = (m + l , n , k - 1) a n d R i o = (m, n, k - 1). Case ( i ) . P = ( m , n , k ) a n d Q = ( m , n + 1, k - 1). T h e n R 1 = ( m , n , k + 1),R 2 = (m - 1,n,k + 1),R a = ( m + 1, n , k + 1 ) , R 4 = ( m - 1, n + l , k + 1 ) , R 5 = ( m + l, n + l, k + 1), R 6 = ( m - l, n, k), R7 = (m + 1, n, k), R s = (m - 1, n + 1, k), R 9 = (m + 1. n + 1, k) a n d R ~ o = (re, n + l , k ) . Case ( j ) . P = (m, n, k) and Q = ( m + l , n + 1. k+ 1).Then R l = (m,n,k+ 1), R2 = (m, n + 1. k + 1 ) , R 3 = (m + 1, n,k + 1 ) , R 4 = (m,n + l,k},R5 = ( m + l, n, k), and R 6 = ( m + l , n + 1, k). Case ( k ) . P = ( m , n , k ) and Q = ( m + 1, n + 1, k - 1 ) . T h e n R x = (m + 1, n + 1, k ) , R 2 = ( m , n + 1, k ) , R 3 = (m + l , n , k ) , R , , = ( m , n + 1, k - I ) , R 5 = (m+ l,n,k1 ) a n d R 6 = (rn, n , k 1). Case (l). P = (m, n, k) and Q = ( m + 1, n - 1,
k - 1 ) . T h e n R 1 = (m + 1, n - 1, k ) , R 2 = (m + l , n , k),R 3 =(m,n1, k ) , R 4 = (m + l , n , k 1),R 5 = (m, n - 1, k - 1) a n d R 6 = ( m , n , k 1). Case (m ). P = (m, n, k) and Q = ( m + l , n 1, k - 1 ) . T h e n R 1 = (m, n, k + 1), R2 = ( m + 1, n, k + 1),R 3 = (m,n - 1 , k ) , R 4 = (m + 1,n,k),R~ = (m, n - 1, k) a n d R 6 = ( m + 1, n - 1, k). D. Attachin O order
S u p p o s e t is a triangle in the partially c o m p l e t e d sentence for F. F o r the sake of consistency, we need to
602
GERHARDX. RITTERand JULIUST. Tou
specify an ordering of the edges of t that informs us as to which edge of t the next triangle t' is to be attached. This order is summarized in Table 1. The letter D denotes the diagonal or unspecified edge. As an example, suppose t = 1 r is associated with (F3, 7) and is attached to the partial sentence for F along its V edge. According to Table 1, we must first try to attach t' to the diagonal of I r before trying to attach it to the H edge of I Y.
Let P denote the first point of F encountered in the above search. The next step consists of searching N(P) for a second point Q of F. If P = (m, n, k), then Q will be the first point of F in the sequence.
QI = ( m - l , n +
l,k),
Q 2 = ( m , n + 1, k), Qa=(m+
l,n+
V. ENCODING ALGORITHM
Q4=(m+
1, n,k),
In order to be more precise, we shall now summarize ihe encoding process into algorithmic form and conclude with a simple example. As in Freeman's octagonal chain code, there are ambiguities that must be overcome when writing an algorithm for encoding a surface. For example, the configuration shown in Fig. 13(a) could be encoded as the polygonal curve 0642 or 050, shown in Figs 13(b) and (c), respectively. In order to obtain an unambiguous algorithm, rules have to be defined which determine how one is to proceed from a given point to the next. A standard approach is to search a binary array from left to right, starting with the top most row and continuing downward, until the first non-zero entry is encountered. F r o m then on, the search for the next non-zero entry proceeds in a clockwise fashion, starting at the neighboring point 135 ° from the last given direction and point and proceeding clockwise until a non-zero entry is found. The algorithm also performs several bookkeping chores, such as keeping track of points already visited and tracing over previous parts. Under this scheme, Fig. 13(a) would be encoded as 0642. In general, the resulting code may not portray the actual curve represented by the array. However, we are assured that the polygonal curve represented by the chain code lies within a b o u n d of unit (grid) distance of the digitized curve. The aforementioned observations apply to the simplicial code as well. Bookkeeping is crucial so as not to attach more than two triangles to an edge and to prevent interior intersections of two triangles. Programmers may well devise algorithms employing our alphabet that will differ significantly from the algorithm outlined in this section. Mimicking the encoding process for curves, we commence by scanning n for a 'first' triangle. We start by scanning n for an initial point of F as follows. For each fixed z-coordinate k, scan the 2-dimensional array {(m, n, k) 1 < m < M, 1 < n < N} by starting at (1, i, k) and incrementing the x-coordinate m = 1 until m = M. Then, resetting m = 1, increment the y-coordinate to n = 2, repeat the entire procedure by incrementing m. Continue in this fashion until n = N. Starting with k = K, and decreasing k, search each 2-dimensional array until a point of F is encountered.
Q5 = ( m -
1, n , k -
Q6 = ( m -
l,n + l,k-
QT=(m,n + l,k-
l,k)
1),
1),
Qa=(m+
1, n + 1, k -
Q9 = ( r n +
l,n,k-
Qxo = ( m +
Q11 = ( m , n Qlz = ( m -
l,n-
l,k1, n -
1),
1),
1), 1, k -
1),
l) 1, k -
1).
Note that not all of N(P) needs to be searched, since points of form Q = (m', n', k') with k' > k or of form Q = (m', n', k) with n' < n or n' = n and m' < m have already been analyzed. Ifno point in the sequence {Q~}belongs to F, then we regard P as a noise point and continue our search for P. Once P and Q are found, we search N(P) for a third points of form Q = (m', n', k') with k' > k or of form Q = (m', n', k) with n ' < n or n' = n and m ' < m have already been analyzed. 1. lfQ = (m - 1, n + 1, k), then R is the first point of F i n t h e s e q u e n c e R t = (m,n + 1,k),R 2 = (m - 1, n , k - 1),R 3 = (m,n + 1, k - 1),R 4 = ( m - 1, n + 1, k - 1 ) a n d R 5 = ( m , n , k - 1). 2. IfQ = (m, n + 1, k), then R is the first point o f f in the sequence R 1 = ( m + 1, n + 1, k), R 2 = ( m + 1, n, k), R 3 = ( m - 1, n, k - 1), R 4 = ( m - 1, n + 1,k - 1),R 5 = (m,n + 1,k - 1),R 6 = ( m , n , k - I),R7 = ( m + l , n + 1, k - 1 ) a n d R 8 = ( m + 1, n , k - I). 3. IfQ = (m + 1, n + 1, k), then R is the first point of F in the sequence R1 = (m + 1, n, k), R2 = (m, n + 1, k - 1), R 3 = (m + l, n, k - 1), R4 = ( m + l , n + l , k - l ) a n d R 5 = ( m , n , k - 1). 4. IfQ = (m + 1, n, k), then R is the first point of F in the sequence R 1 = (rn, n + 1, k - 1 ) , R 2 = (m + l , n + 1, k - 1),R 3 = (m + l , n , k - 1)and R,, = ( m , n , k - 1). 5. IfQ = (m - 1, n, k - l), then R is the first point of F in the sequence Rl = ( m - 1, n - 1 , k - l ) a n d R 2 = (m, n - l, k - 1), R 3 = ( m - I, n + l, k - 1),R4 = (re, n + 1, k - l ) a n d R 5 = (re, n, k-l). 6. I f Q = ( m - l , n + l , k - 1),then R i s t h e first
Encoding of arbitrary surfaces in 3-dimensional space
7.
8.
9.
10.
11.
12.
point o f F in the sequence R 1 = (m, n + 1, k - 1), R z = ( m , n , k - 1). lfQ = (m,n + l , k - 1), then R is the first point of F in the sequence Rt = (m + 1, n + 1, k - 1), R2 = ( m + 1, n , k - 1) and R a = ( m , n , k - 1). I f Q = ( m + 1, n + l, k - 1 ) , then R is the first point o f f in the sequence R1 = (m + 1, n, k - 1) and R2 = (m, n, k - 1). IfQ = (m + 1,n,k - l ) , t h e n R i s t h e f i r s t p o i n t o f F in the sequence R 1 = ( m + 1, n - 1, k - 1),R 2 = (re, n - 1, k - 1 ) a n d R 3 = (m,n,k-1). If Q = (m + 1, n - 1, k - 1), then R is the first point o f f in the sequence Rz = (m, n - 1, k - I), R 2 = ( m , n , k - 1). lfQ = (m, n - 1, k - l), then R is the first point of F in the sequence RI = (m - 1, n - 1, k - 1), R 2 = ( m , n , k - 1). I f Q = ( m - 1, n - 1, k - 1), then R = (re, n, k - 1) if R is in F.
If no such point R can be found, we again disregard P and continue our search for P, Q and R as described above. Once P, Q and R have been found, then the triangle determined by P, Q and R is a letter for F. The
603
3. Using Table 1 and the search rules, search for a triangle that can be attached (satisfies the attachment rules) to t(l). If no such triangle can be found, go to Step 6. 4. Seth = h + 1 a n d l e t t(h) be the triangle f o u n d i n Step 3. 5. Set W = W • t(h) and go back to Step 3. 6. If I = h, the code is W and the algorithm stops. Otherwise go to Step 7. 7. Set l = l + 1 and go back to Step 3. Thus, i f F consists of the black vertices shown in Fig. 14(a), then the code would consist of the two triangles shown in Fig. 14(b), with the initial triangle t(l) as indicated. On the other hand, Fig. 14(c), although representing another simplicial approximation of the digitized surface, could not have resulted from the algorithm. The next example provides a more extensive illustration of the algorithm. Let F be the digital surface in Fig. 15 defined by the solid pixels. Starting with the triangle t(l) = rp shown in the figure and applying the preceding algorithm, we obtain the code for F as follows.
t(1) = i-a: W = [P t(2) = ra: W = l-PHI-a t(3) = 0P: W = i-P(Hi-~)0~ t(4) = i-a: W = rIJ((HP)Oa)VSIa t(5) = O': W = fP((Hf60')Oo)VSf p t(6) = f°: W = fP((HP(O~)VSf~)OP)VSf p t(7) = 2}': W = fa((HF~(O~)VSf~)OPH2r)VSf~ t(8) = 3~: W = fP((Hf~(O~)VSP)OP(H2Y)V3OVSf p t(9) = 0a: W = fa((Bf~(O~)VSfOOP(H2OV3OVSfPOp t(lO) = 2~': w = fP((Hf6(O~H2OVSP)OP(B2OV3Y)VSf~ p t ( l l ) = 1~": W = fa((nf6(O~(n2ov10VSf')OP(H2Y)V3r)VS-fOO p t(12) = O~: W = fa((HP(O6(H2OVIOVSf~6)OP(B2OV3OVSf~OP Continuing the algorithm yields t(28) = 1 ~, and W = ra((HI~(0~(H 2 ~(V1 ~HOZ2rV10H0~)V1 rV3r2r)VSr~O~Sl ~VOa2P)OP(H2rVI H3rV1 r)V3r)VSrPOaS2~VOP2a
simplicial letter representing this triangle is the first letter in the code for F. Following the order of Table 1, we attach triangles that obey the attachment rules to the sides of the initial and all succeeding triangles. The procedure terminates when no more triangles satisfying the attachment rules can be found. The code for F is then given by the simplicial sentence constructed in this fashion. Thus, we have the following algorithm for constructing the code for F. 1. Set h = 1 and l = 1. Find the initial triangle by the method described above. 2. Let t(l) denote the initial triangle, and let W = t(l) be the initial sentence.
as the code for F. The simplicial complex corresponding to W is shown in Fig. ll(c) and Fig. 16, with the first and last triangles as indicated in Fig. 16. Note also the difference between this code and the code given earlier for this surface. The algorithm may be viewed as the construction of a tree, with left open parenthesis indicating branching and right open parenthesis indicating the end of a branch. The triangles may be thought of as nodes, with two nodes connected by a segment if the corresponding triangles share an edge in the sentence for F. The root of the tree corresponds to a substring in W that can be written without parenthesis. Thus, the thickened branch in the tree representing W (Fig. 16)
604
GERHARD X. RITTER and JULIUS T. T o u
z
,,,I
(a)
(b)
(c)
Fig. 14. The initial triangle for the digital surface shown in (a) is as indicated in (b). The simplicial complex (c) could not result from our algorithm. corresponds to the substring
faHr~OPH2rVI rHOr2rV1 ~. VI. CONCLUSION
We developed a procedure for describing and encoding arbitrary surfaces embedded in 3-dimensional space. Surfaces not represented by single valued functions may be encoded by using the described algorithm until it terminates. If W denotes the word thus obtained, then the next step consists of finding a triangle t', not satisfying rule (3), that attaches along an edge E to the boundary of W. The triangle t' should be
chosen so that the vertex opposite E does not belong to a triangle of W. Now let F' be the points of F that are not interior points of W. A point P of F is an interior point of W if every edge of a triangle in W containing P is an edge of two triangles in W. Starting with t' as our first triangle having occupied edge E, we apply the entire encoding algorithm to F' in place of F. The word W' obtained in this fashion is attached to W along E. If further points remain, we repeat the entire procedure using W * W' in place of W. An example of a surface not representable by a single valued function is given in Fig. 10. It should also be clear that the removal of the second attachment rule allows us to encode any 2-dimensional
Z
X
Fig. 15. The initial triangle resulting from our algorithm when encoding the digital surface indicated by the solid grid points.
Encoding of arbitrary surfaces in 3-dimensional space
t (z~ /
"
605
We do not claim that simplicial encoding is necessarily more efficient than other methods developed thus far. However, procedures found in the literature are usually more problem-dependent or less straightforward. One method that uses triangular approximation was given by Keppel. ~23~ It also encodes a surface by expressing it as a simplicial complex, but its accuracy of a particular representation depends heavily on how many and which digital contour points are selected. Thus, unless a priori knowledge for selection is present, true representation becomes impossible. SUMMARY
_ Fig. 16. The simplicial complex obtained from the digital surface shown in Fig. 15. Tree branches correspond to parentheses and t(28) denotes the last letter of the code.
simplicial complex. However, if F is a singular surface, then the removal of rule (2) might result in a code that represents a non-singular surface. The code obviously inherits many of the elementary manipulative properties exhibited by its precursors, the simplicial code for planar surfaces tS~ and ]~reeman's octagonal chain code. "~ For example, the area A of the surfzce is given by A = l / 2 k 1 + x/~/2k2 + x/~k3, where k~ = the number of triangles in the code associated with (Fi, di), i = 1, 2, or 3, k 2 = the number of triangles in the code associated with (F,, d,), i = 4, ..., 9, and k 3 = the number of triangles in the code associated with ( F , d3. i = 10 . . . . . 13. Other properties are rotations and expansions. However, algorithms for all possible rotations and expansions of a surface in 3-dimensional space are beyond the scope of this paper and need further investigation. Suffice it to say that addition of 1 (mod 4) to a triangle associated with (F i, dl), i = 1. . . . , 10, rotates the triangle in its plane through an angle of 90 °. Interchanging the horizontal and vertical sides completes the rotation. Similarly, adding 1 (mod 2) to a triangle associated with (F i, di), i = 10 . . . . ,13, reflects the triangle across the center of its diagonal. Thus, adding 1 mod2 to OtJVSOaWO#SVO~rPWI#SVr#H1 t~ yields T~VSIaWI~SVI~O~WO~SVO~HO ~. Observe that this addition interchanges the upper with the lower half of the octahedron in Fig. 10 in an antipodal fashion. The possibility of manipulating arbitrary encoded surfaces under visual control is partially responsible for the development of the simplicial code. The simplicial code seems to provide a description of surfaces particularly well suited for graphical visualization on a display terminal.
We develop a procedure for describing and encoding arbitrary surfaces embedded in 3-dimensional space. The procedure is based on the topological fact that any surface can be coherently triangulated. The oriented triangles of the triangulated surface form the basic letters of the encoding language. The code can be thought of as a generalization of Freeman's octagonal chain code ts) for planar curves, since the geometric realization of the octagonal chain code is an oriented simplicial 1-complex. REFERENCES
1. H. Freeman, On the encoding of arbitrary geometric configurations, IRE Trans. Electron. Comput. 10, 260-268 (1961). 2. A. Rosenfeld, Arcs and curves in digital pictures, J. Ass. comput. Mach. 20, 81-87 (1974). 3. R. Stefanelli and A. Rosenfeld, Some parallel thinning algorithms for digital pictures, J. Ass. comput. Mach. 18, 255-264 (1971). 4. J. Tou, Image processing in industrial automation, Technical Report, Center for Information Research, University of Florida, Gainesville (1979). 5. S. M. Boyles and G. X. Ritter, The encoding of arbitrary 2-dimensional geometric configurations, Int. J. Comput. Inf. Sci. 10, 1-25 (1981). 6. E. C. Hudson, Piecewise Linear Topology. W. A. Benjamin, New York (1969). 7. E. C. Zeeman, Seminar on Combinatorial Topology. Institute des Hautes Etudes Scientifique, Paris (1963). 8. L. S. Davis, Shape matching using relaxation techniques, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-I, 60-72 (1979). 9. L. S. Davis, Hierarchial relaxation for shape analysis, Proc. Pattern Recognition and Imaoe Processing Conference, Chicago, pp. 275-279 (1978).
10. J. W. McKee and J. K. Aggarwal, Computer recignition of partial views of curved objects, IEEE Trans. Comput. C-26, 790-800 (1977). 11. J.W. McKee and J. K. Aggarwal, Finding the edges ofthe surfaces of three-dimensional curved objects by computer, Pattern Recognition 7, 25-52 (1975). 12. W. N. Martin and J. K. Aggarwal, Computer analysis of dynamic scenes containing curvilinear figures, Pattern Recognition 11, 169-178 (1979). 13. W. K. Chow and J. K. Aggarwal, Computer analysis of planar curvilinear moving images, IEEE Trans. Comput. 26, 179-185 (1977). 14. A. Rosenfeld, Connectivity in digital pictures, J. Ass. comp. Mach. 17, 146-160 (1970). 15. A. Rosenfeld, Digital topology, Am. math. Mon. 86, 621-630 (1979).
606
GERHARDX. RITTERand JULIUST. TOU
16. A. Rosenfeld, Digital straight line segments, IEEE Trans. Comput. 23, 1264-1269 (1974). 17. G. X. Ritter, Chain-code correlation for arbitrary surfaces (preprint). 18. F. P. Kuhl, J. Weber, D. O'Connor and C. R. Giardina, Fourier series approximation of chain-encoded contours, Proc. Electro-Opticsl Laser 80 Conference and Exposition, Boston, MA, pp. 317-331 (1980). 19. F. P. Kuhl and C. R. Giardina, Elliptic Fourier features of closed contours, Technical Report, ARRADCOM, Dover, NJ (1981).
20. G. X. Ritter, Fourier descriptors for surfaces, Technical Report, Center for Information Research, University of Florida, Gainesville Technical Report (1982). 21. R. H. Bing, Approximating surfaces with polyhedral ones, Ann. Math. 65, 456-483 (1957). 22. C. E. Burgess and J. W. Cannon, Embedding surfaces in E 3, Rocky Mount. J. Math. 1, 259-344 (1971). 23. E. Keppel, Approximating complex surfaces by triangnlation of contour lines, IBM JI Res. Dev. 19, 2 11 (1975).
About the A u t h o r ~ E r H A r g RITTER received his Ph.D. degree in Mathematics from the University of Wisconsin in 1971. He is an Associate Professor of Mathematics at the University of Florida. His research interests cover pure and applied mathematics, pattern recognition and image processing, and he has published over twenty-five articles in these areas. Dr. Ritter has been a research geophysicist at Texaco's Bellaire Research Labs and has contributed to NASA and Air Force research in pattern recognition and image processing. He was instrumental in designing the pattern recognition and clustering section of Project Oasis, NASA's signal detector for extra terrestrial intelligence. His current research--sponsored by the Air Force Office of Scientific Research and the Air Force Armament Laboratory--concerns the development of a mathematical foundation for cellular image processing. About the Author--JuLIUS Tou received his B.S. in 1947 from the National Chiao-Tung University, his M.S. from Harvard and his Ph.D. from Yale, all in Electrical Engineering. His major research interests are in computer and information science, image processing, pattern recognition and information systems. He has held faculty appointments at the University of Pennsylvania, Purdue University, Northwestern University and Ohio State University. He has been a consultant for the Department of the Army, McDonnel Douglas Corporation, General Electric, IBM, Philco Corporation and the Barber-Colman Company. Dr. Tou is a fellow of the I.E.E.E., Academia Sinica and the American Association for the Advancement of Science. He is also a member of A.C.M., the American Society of Engineering Education, the International Society of Cybernetics Medicine, the Pattern Recognition Society, Sigma Xi and the American Institute of Management. He has been chairman and member of numerous I.E.E.E. committees. He has published over 150 articles and several books, including Pattern Recognition Principles. He is editor-in-chief of the International Journal of Computer and Information Science. At present he is a Graduate Research Professor of Electrical Engineering and the director of the Center for Information Research at the University of Florida.