On recognizing unions of two convex polygons and related problems

On recognizing unions of two convex polygons and related problems

Pattern RecognitionLetters 14 (1993) 737-745 North-Holland September 1993 PATREC 1024 On recognizing unions of two convex polygons and related prob...

865KB Sizes 0 Downloads 78 Views

Pattern RecognitionLetters 14 (1993) 737-745 North-Holland

September 1993

PATREC 1024

On recognizing unions of two convex polygons and related problems Thomas Shermer School of Computing Science. Simon Fraser University. Burnaby, British Columbia. Canada V5A IS6

Received 27 May 1992 Abstract

Shermer, T., On recognizing unions of two convex polygons and related problems, Pattern Recognition Letters 14 ( 1993 ) 737-745. A polygon is said to be U2 ifit is the union of two convex polygons, and it is said to be P3 iffor any three points in the polygon, at least two of them are visible to each other. Furthermore, a polygon is said to be KR if all of its reflex vertices are in its kernel. It is known that polygons that are/-/2 are also P3, and polygons that are P3 are also KR. We investigate the geometric properties of these polygon classes, and present an O (n) algorithm for determining if a polygon of n sides is/./2, P3, KR, or neither. We also present a simple algorithm for finding the kernel of a KR polygon. The problem of determining ifa polygon is U2 often arises in biomedical image processing.

I. Introduction By an application of results by Valentine [ 14 ] and Stamey and Marr [ 1 1 ], we arrive at an O ( n ) algorithm to determine if an input polygon P can be ex. pressed as the union of two convex polygons, and to find two such convex polygons if the answer is in the affirmative. Our algorithm will also detect if P is P3, by modifying and using an algorithm for finding nested polygons due to Aggarwal et al. [ 1 ]. We also present a simple, special-case kernel-finding algorithm, which will either report that P is not U2 or P3, or else will compute the kernel of P. Correspondence to: T. Shermer, School of Computing Science, Simon Fraser University, Burnaby, British Columbia, Canada V5A IS6. This research was supported by the Natural Sciences and Engineering Research Council of Canada under grant OGP00462 i 8.

These problems arise in many applications in biomedical image processing. For example, in the analysis of cervical cell (or blood cell ) smears, it often happens that two cells, one in the foreground and one in the background, are on top of one another in the image [ 2,8 ]. As each cell is convex, the resulting image has a region that is the union of two convex regions. Our algorithm is useful in detecting this situation, and in extracting useful information from it. Another application is in the computer analysis of electrophoretograms [ ! 3 ], where the index spots are modelled as convex regions. A singly-connected polygon is a figure in the plane formed by n points P0, P~, ..., P,,- ~ (called the vertices of the polygon) and the n line segments [p,, p,+~], i=O, 1, ..., n - 2 , and [p,,_ ~, Po] (which are called the edges of the polygon). A polygon is said to be simple if no point of the plane belongs to more than two edges of the polygon, and the only points that belong to pre-

0167-8655/93/$06.00 © 1993-- ElsevierSciencePublishers B.V. All righi~lesel'ved

737

Volume 14, Number 9

PATTERN RECOGNITION LETTERS

cisely two edges arc the vertices of th~.~ polygon. Henceforth, we use the term polygon to refer to the boundary and interior of a simple, singlv-connected polygon. Polygons are thus closed and bounded sets in the plane. Two points x and y in a polygon P are said to be visible if the line segment ~-~ ~ P. The kernel of a polygon P is the set of all points xE P from which all other points of P are visible. K will denote the kernel of P. Throughout the paper, we will assume that we are given a polygon P with n sides. Also, we let Q= {qo, q~ ..... qq_ ~} be the set of reflex vertices of P, where q is the cardinality of Q. We assume that the q/s appear in order of increasing index in a counterlockwise traversal of the boundary of P, and that all subscripts on q,'s are taken modulo q. We let bdSdenote the boundary ofset S, and convS its convex hull. We say that polygon P is Uk if P is expressible as the union of k or fewer convex sets. Sets that are Uz have been studied by Stamey and Marr [11] and McKinney [ 7 ]. A U, polygon is shown in Figure l a, with one of the two convex sets shaded. We say that polygon P is Pk if, in any set ofk points chosen from P, there is always some pair that is visible. The property Ps was first introduced by Valentine [ 14], and Pk was first studied by Kay and Guay [ 5 ]. Another way of saying that P is Pk is to say that it has a maximum hidden set of size k - I. A hidden set is a set ofpoints in a polygon, no two ofwhich are ~sible; for an investigation ofthese sets, see [ 10]. In this paper we are interested in polygons that are P~; such a polygon is shown in Figure lb. We say that polygon P is kernel-reflex (KR) if all reflex vertices of P are also in K. If P is KR, then the convexity of K implies that all reflex vertices q, appear on the boundary ofconv Q (in the same order as (e)

September 1993

i,i •

Figure 2. A polygon that is KR and not P~.

they appear on the polygon), and that no three q/s are colinear. We will see that P is U2 implies that P is P3, which in turn implies that P is KR. A polygon that is KR but not/'3 is shown in Figure 2. One of the contributions of this paper is to note that for polygons, the properties KR and P3 are almost equivalent, and that many of the results from the literature on sets that are P3 can be shown to be true for polygons that are KR. We will define the chains of P as the sequence of vertices on the boundary of P between the q/s. In particular, the ith chain, C,, is the sequence of vertices between q,'s and q~+~, inclusive. Note that a chain may be simply two reflex vertices q~q~+~. Figure 3 illustrates these definitions. For the following definitions, we assume that P is KR (which is the case for the polygons that we are interested in ) and q>~ 3. We let CO~ denote the cone of q,, which is the region of the arrangement of the two lines q~_ ~q~and q~q~+~that does not touch either q,-i or q,+l. We let H~ represent the halfplane to the right of the directed line from q~ to q~+ ~; in nondegenerate situations this is the halfplane determined by q,q~+~that does not contain Q. Further, we define ST,, the stellation of the side q~q~+~ of conv Q, as

(b) CO = qOPOPlql

i Figure !. Uz and P3 polygons, 738

C,~ = q4q5

Figure 3. Reflex vertices and chains.

Volume 14, Number o

PATTERN RECOGNITION LETTERS

September 1993

Proof. Let S~ and $2 be tile two convex sets whose union is P. Then, for any three points in P, either two are in S~ or two are in $2, by the pigeonhole principle. Either case implies that two points are visible. [] Theorem 2. P is P3 ~ P is KR. Figure 4. Cones, stellationsand tips. Hi \ (COi u COi+ ~), and let Ti, the tip of the side qiq~+~, be STic~P. Figure 4 illustrates these definitions. The following section presents the results from the literature that we will use, and explores the geometry of polygons that are U2 and P3. Following that, we present our special-case kernel-finding algorithm. Finally, we present and prove correct our classification algorithm, which determines ifa polygon is U2, Pa, or neither.

Proof. This is [ 14, Theorem 1 ]. We treat convex as trivially satisfying the conditions for KR. Note that P is KR--,P is star-shaped. [] Corollary 2a. P is not KR-~ P is not P3 -* P is not U2.

Theorem 3. P is KR and q>12 is even ~ P is U2. In particular, P is the union o f the convex sets Si = CoC2""Cq_2 and $2 = Ci C3""Cq_ ! (see Figure 5 ). Proof. This follows from the proof of [ 14, Theorem 3]. We have changed the hypothesis from that of having a closed set that is Pa to that of having a polygon that is KR, but the original proof depends only on the KR property and therefore still applies. []

2. Relevant geometric properties In this section we investigate the geometric propcities of polygons that are U2 or P3. Several of the results that we present are lemmas and theorems from [ 14] and [ I 1 ], which we have modified for the special case that we are dealing with (polygons). For the proofs of these results, the reader is referred to the original papers.

Theorem 1. P is KR ~ ¥i, CO~ c~P = 0. Proof. This is [ 1 I, Lemma 1 ]. We have changed the hypothesis from that of having a connected set that is Pa to that of having a polygon that is KR. However, the original proof depends only on the KR property, and therefore still applies. [] Corollary I a. P is K R - , q-!

e-

[,.) 7", cony Q .

Lemma 1. P is U2 -+ P is P3.

Theorem 4. P is KR and q is odd --, if there exists some point pe ( bd K c~bd P) \ Q, then P is U2. In particular, P is the union of the two convex sets S~= CoaCi C3""Cq_2 and S2=CohC2C4""Cq-I, where p is wlog on Co, and it divides Cj into two chains Coa (clockwise of p), and Co~ (counterclockwise of p ). (See Figure 6. ) Proof. Thi,,i follows from [11, Theorem I]. Once again the hypothesis has changed but the elements of the proof are unaffected. O Theorem 5. P is the union of two convex polygons S~ and $2 which both contain K, and q is odd -~ 3 p~ ( bd K c~ bd P) \ Q.

( Figure 5. Cover when P is KR and q is even. 739

Volume 14, Number 9

PATTERN RECOGNITION LETTERS

September 1993

Theorem 6. P ts KR and q~ 3 ~ P is 1)3.

P

~p

qo

Figure 6. Cover whenP is Ps and (bd K f~ bd P) '\ Q# ~. Proof. This is [11, Theorem 2 ]. We have included the case of q= 1, for which the conclusion is trivially satisfied for polygons. I"1 Corollary 5a. P is U2, and q is odd ~ 3 pe ( bd K f~ bd P) \ Q.

Proof. Let S~ and S[ be the two convex sets whose union is P. Then, let S~=conv(S'~uK), and S2=conv(S'2 u K). By the definition of the kernel K, Si ~ P, and $2 c P. S~ and $2 are now two sets satisfying the hypothesis of Theorem 5, which we apply to get the desired result. [] Corollary Sb. ( bd K ~ bd P) \ Q=O and q is odd --, P is not U2. Lemma 2. Let P be KR, with p, ~ T,, and p2 ~ 7), where j ~ i + I a n d j ~ i - I. Then, P2 sees p,,. Proof. If i - j , then the result follows from the convexity of Te. Otherwise, we let To = Tt u cony Q v T~, and show that TOis convex. By the constraints on i and A we know that the four reflex vertices q,, q,+~, qs, and qs+~ are distinct. We claim that none ofthese are reflex in T,s (note that all other vertices of T,s are necessarily convex, as T Ois the union of three convex sets). If q, or q,+~ were reflex in T u, then it must also be reflex in T, ~ cony Q. However, 1"~u cony Q is convex, as any two points in T, are visible, any two points in conv Q are visible, and any point o f c o n v Q will see any point of T,, as com, Q ~_ K. Therefore, neither q, nor q,+l can be reflex in Tu; similarly qj and qj+t are not reflex. Therefore, T,s has no reflex vertices, and hence is convex, by Tietze's theorem [ 12 ]. The lemma follows. [] 740

Proof. The cases for q=0, q= l, and q = 2 are trivial. We prove the remaining case by contradiction. Assume that some polygon R is KR with q > 3, but not P3. Then, there would be three points p~, P2, and P3 in R such that no two of them are visible. Obviously, none of the points are in K, therefore none are in cony Q. This means that each of them is in some tip T,. Wlog, assume that p~ is in T~. By Lemma 2, we cannot place P2 and P3 in any tips except To or T2. Again, we can wlog assume that P2 is in To. However, since q > 3, To is not adjacent to 7"2, Lemma 2 implies that we cannot put P3 in 7"2, so we cannot place P3, which is a contradiction. Therefore, the theorem holds. [] We note that for q= 3, it is possible to have a polygon that is KR yet not P3 (see Figure 2 ).

3. Finding the kernel of a KR polygon in this section we present an O ( n ) algorithm for finding the kernel of a KR polygon. This algorithm will report ifits input P is not KR. In particular, ifthe algorithm returns 0, then the input was not KR; otherwise it returns K, the kernel of P. We note that there is an O(n) algorithm for kernel-finding for simple polygons [6]; we present this algorithm only as a more easily implementable alternative. in the following,/, denotes the vertex of P clockwise of qt, and r, denotes the vertex of P counterclockwise of q~. KI~-KERNEL

( I ) Calculate the intersections b, of all rays i~q~*with P (see Figure 7 ): (la) Set j = 0 . J (Ib) Set R = Isqs. ( I c) Walk counterclockwise from qs until we either intersect R, or we come to qs+ ~. ( I cl ) If we intersect R, store the intersection point as bs, and set j = j + I. I f j = q , go to step ( 2 ), otherwise go to step ( I b). (Ic2) Otherwise, we have reached qs+~ without intersecting R. Thi~; means that qs+ ~ is not

Volume 14, Number 9

PATTERN RECOGNITION LETTERS

September 1993

Theorem 7. I f P is KR, then algorithm KR-KERNEL correctly computes its kernel; otherwise, algorithm KRKERNEL returns ~).

bI

Figure 7. Computing b~'s.

(a} qi

(b) qi+l

ql

qi+l

Figure 8. b~and G+ ~.

on the kernel of P, so P is not KR. Therefore, return 0. ) (2) Calculate the intersections c~ of all rays r,q~ with P, by a method symmetric to that of step ( 1 ). (3) We now know that P is KR. For each reflex vertex q~, we find the kernel chain counterclockwise of q~ as follows: (3a) If b, is counterclockwise of G+ i, th~n le__[tt be the intersection point of the segments q~b, and q~+nG+~. Let Ka=q~tq~+~. This is illustrated in Figure 8a. (3b) Otherwise, b~ is clockwise of c,4 ~. We let C', be the subset of C~ from bj to c, + ~. Then, we let K~=q~b~C~c~+~q,+~. This is illustrated in Figure 8b. (4) Finally, we let K be the concatenation, of the K~'s, in order, and return K. An example is shown in Figure 9.

Proof. If KR-KERNEL__.returns 0 in step ( I c2), then tb+ ~is to the right ofi~q~, and hence qj+ ~does not see the vertex i~. Thus, qj, ~ is not in the kernel, and P is not KR. Similarly, if IG~-KERNEL returns 0 in step (2c2), then qj_ ~does not see r~, hence P is not KR. We now show that if KR-/~RNEL does not return in step ( I c2) or step (2c2), then P is KR. Suppose P is not KR. Then, there is sgme reflex vertex q ~ Q, and some point p ~ P, such that p and q are not visible. This implies that ffq intersects bdP in two distinct points Pn and P2 such that the portion ofp-q between p~ and P2 is entirely exterior to P. We let Px be the portion of the bd P that is bounded by p~ and//2, and does not contain q. Assume that P~ lies to the left of (the other case is symmetric). We henceforth assume for convenience that ~~ is horizontal with q left ofp (see Figure 10). Let H be the highest horizontal line intersecting/~, and q~ be the left-most point of H u P~; q~ is a reflex vertex of P. Traverse bd P clockwise from q~ to q; there r~q~ m this traversa~, are no intersections of bd P and ---*" as bdPbetween qx and q is all below H, and r~q~proceeds upwards from q~. Thus, q~_ ~ (which is either q or between q~ and q) is encountered before rx~/~ in a clockwise traversal of P from qx, and KR.KERNEL would have returned in step (2c2). Thus Kt~:.KERNEL returns 0 for any polygo'.~ that is not KR, and continues to step ( 3 ) for any polygon that is KR. To show that KR.KERNEL correctly computes the kernel in steps ( 3 ) and (4), we will use the result that the kernel of any simple polygon is the intersection of the interior half:planes of the edges of tl~,e polygon

'i I

i

.

I

<'f" Pl

Figure 9. Computing K.

P2

i:

~1

/

;

P

Figure 10. Illustrating the proof of Theorem 7. 741

Volume 14, Number9

PATTERN RECOGNITION LETTERS

[6 ]. Suppose that some point p of P is excluded from K as constructed in steps (3) and (4). Then, p must lie in the exterior half-plane of some edge liq, or r,q~, and hence is not in the kernel. In the following we use K to ~enote K as constructed in KR-KERNEL, and K(P) to denote the kernel of P. If p is in K, then either p ¢ cony Q or p ~ T, for some i. If p¢convQ, then p~K(P), as Q c K(P), and kernels are convex. It remains to show that ifp e T~n Kfor some i, then peK(P). Consider such a point p¢ T~~ K. The point p sees every point in cony Q, as cony Q ~ L (P). It also sees every point in T~, as T, is convex. Furthermore, p sees every point in T,_~, as p¢K imphe.; that the angles of the polygon pC,_ ~p at q, and q~_ ~ are convex. thus pC,_~p is convex (by Tietze's theorem [ 12 ] ) and contained in P. It also sees every point in T~+~, by a similar argument. Finally, p sees every point in the other T,'s, by I.emma 2. Thus, p sees every point i.n Pand is therefore in K(P). []

September 1993

Figure I 1. Subdivisionfor q= 1. (a)

(b) ql q!

qO

q2

q2

Co~j

Po

Po-P3 Figure 12. q=3.

4. Determining if P is/./2,/)3, or KR In this section we give the O (n) time algorithm for determining if a polygon is U,,/'3, or KR. The algorithm will return NO, KR, P3, or U2: NO ifthe input polygon P is not KR, KR if the input polygon is KR but not P~, P3 if P is P3 but not U2, and U2 if P is U, (in which case it is also P3). In addition, if it returns U2, it also computes two convex polygons S~ and S, whose union is P.

U2 AND P~ RECOGN1770N ( 1 ) Compute q, the number of reflex vertices of P. This is easily done in O(n ) time. (2) l f q = 0 , then P is convex; return with answer U2 and St =$2 =P. This test takes O( I ) time. (3) l f q = I, then partition P into two sets St and $2 by extending one of the edges incident on the reflect vertex until it hits the boundary of the polygon (see Figure !1 ), and return with answer U2. This can be done in O(n) time. (4) Compute K, the kernel of P, in O(n) time, using either algorithm KR-KERNEL or the algorithm of [61. (5) If K=O, return with answer NO. This takes O( ! ) time. 742

If Q ~ K, return with answer NO. This can be checked in O(n) time by counting the number of-eflex vertices of P that are on the boundary of K, and comparing it to q. This step can be skipped if using algorithm KR-KERNEL to compute the kernel. (7) If ,7 is even, return with answer U2, S,--CoC,'"C~_2, and S2-CIC3".Cq_, (see Figure 5). This can be done in O ( n ) time. (8) If ( b d K ~ b d P ) \ Q ~ O , find some point p in ( bd K ~ bd P) \ Q. W.l.o.g., assume that p is on the chain Co; it divides that chain into two chains Coo (clockwise of p ), and Cob (counterclockwise of p). We return with answer U2, Sl=CooCiC3""Cq_,, and S2=CobC2C4"'Cq_I (see Figure 6 ). Checking the intersection, finding p, and constructing Si and S, can all be done in O ( n ) time. (9) If q > 3, then return with answer/3. This takes O( 1 ) time. (10) Apply the algorithm of [ 1 ], with qo, qt, and q2, in that order, as the q-points of their algorithm (see Figure 12 ). Given any point Po between Co and b2, this algorithm will determine the threesegment linkage such that each of the three segments is maximal in P, the starting vertex of the (6)

Volume 14, Number 9

PATTERN RECOGNITIONLETTERS

linkage is Po, and the three segments of the linkage contain qo, qt, and q2 (in that ordec), one. in each segment. The algorithm wiU also determine how this linkage changes as Po is moved, in particular detecting when pj (the other end of the linkage) is coincident with Po. We start with the point Po at Co and move it counterclockwise until it reaches b2. If P3 ever crosses Po, then return with answer KR. Otherwise, return with answer P3. This can be done in O (n) time. See the Appendix for details.

Theorem 8. Algorithm U2 AND P3 RECOGNITION is correct. Proof. If the algorithm returns in steps (2) or (3), it is trivially correct. If it returns in steps (5) or (6), then it is correct by corollary 2a. If it returns in step (7), it is correct by Theorem 3. The computed sets Si and $2 in this case are also correct by Theorem 3. If it returns in step (8), it is correct by Theorem 4. In this case, the sets S~ and $2 are correct by Theorem 4. Otherwise, we return in step (9) or step (10), in which case Corollary 5b assures us that we must either return P3 or NO. Ifwe return in step (9), then we are correct, by Theorem 6. Ifwe return KR in step (10), then the third image of Po has crossed/70. In this case we can find three points that are mutually invisible: one between the crossed segments of the nested chain, and the other two in the neighborhoods of the p-points (see Figure 12b). Therefore, P is not P~ and it is correct to return KR. On the other hand, we can show that it P is not P3, then there are three mutually nonvisible points on the boundary of P. Let these points be xo, x~, and x2, on Co, Ci, and C2, respectively. Then, a supporting chain starting at x2 must hit Co past (counterclockwise of ) xo; this nested chain continued must hit C'~ past xt, and hit C2 again past x2. Therefore it has crossed itself. So, if we return P3, then we are correct, because if P were not P3, then at some point the nested chain would have crossed its starting point. Therefore, we are correct if we have returned in step (10), and the entire algorithm is correct. I"1

September 1993

Finally, we note that algorithm K.R-KERNEL does most of the work: step (8) of U2 AND 1'3 RECOGNITION is really just repetition of step (3) of KRKERNEL.

5. Conclusion We have shown that many of the results about sets that are P3 can be extended to polygons that are KR, and investigated further the geometry of this polygon class. We have also shown that the kernel of KR polygons can be computed in O (n) time with a simple algorithm. Furthermore, we have given an O (n) algorithm for classifying a polygon as U2,/3, KR, or neither. An open problem is the extension of this result to recognizing unions of three convex sets, four convex sets, etc. The general problem (what is the minimum number of convex sets necessary to cover P?) is known to be NP-hard [4,9]. However, Chazelle and Dobkin have an O (n 3) algorithm for the general convex decomposition problem (what is the minimum number of nonoverlapping convex sets necessary to cover P?) [3].

Acknowledgements Much of this work was done while I was at McGill University, Montreal, supported by a Friends of McGill Fellowship. l thank David Avis, Binay Bhattacharya, Godfried Toussaint, Rafe Wenger, and my colleagues in the McGill Computational Geometry Seminar for several discussions and helpful suggestions.

A. The nested polygon algorithm in this appendix we briefly describe the algorithm of [ 1 ], and how it is modified for our problem. This algorithm solves the following problem: given two convex polygons P and Q, with Q c P, find a convex polygon R such that Q c R c P, and R has a minimum number of vertices. First, they note that R can be constrained to have 743

Volume 14, Number9

PATTERN RECOGNITION LETTERS

all of its vertices on bdP, and all edges (except possibly one) touching bd Q, without affecting the outcome. Any polygon thus constrained is called a supporting polygon. The points where R contacts bd P and bd Q are called p-points and q-points, respectively, and the edges of P where R contacts P are called p-edges. Any supporting polygon has at most one more edge than the minimal-vertex nested polygon. Also, any supporting polygon can be obtained by starting at some point Po on bdP, finding a chord [Po, Pl ] of P that supports (intersects the boundary but not the interior of) Q, and proceeding in a similar fashion from p= until we reach a point p, that is visible from Po (see Figure 13). We then connect Pr to Po. We will call p, the rth image ofpo. The algorithm for finding the minimal-vertex R is as follows: start at any point p~ and find the associated p,*. Then, move Po counterclockwise around P, from p~ to PT. if at any point during this motion the point p, catches up to Po, then the supporting polygon starting at this Po must be minimum. If p, never catches up to Po, then any supporting pelygon is minimum. The motion of Po from p~ to PT is accomplished algorithmically by considering this motion to be bro. ken up into parts, where in each part the supporting polygon has a fixed set of q-points and p-edges. There are only a linear number ofsuch parts, and the change from one part to the next consists ofehanging a single q-point or p-edge (degeneracies can lead to parts that have no length ). Any part in which Po and p, are not on the same p-edge need not be considered. Therefore, in any one part, we have the situation illustrated in Figure 14. If we let to be the distance from Po to the clockwise vertex of the p-edge containingpo, and similarly define tl, t, ..... t,, then it is shown in [ 1 ] that there are constants c~, c,, c~, and c4 (de-

September 1993

Pl

to

J.

Figure 14. One part ofpo's journey. pending only on the p-edges and q-points) such that tl = (c~ +C2to )/(c3 +C4to ) , and similar constants dl, d2, d3, and d4 such that

t,= (d, +d2to ) / ( ~ +d4to). Each p-edge and q-point for this part contributes upper and lower bounds on to, and the minimum such upper bound determines the to when we must change to the next part. Thus, detecting whether t, catches up with to on any one part can be accomplished by solving the quadratic equation to=t, ( d 4 t ~ + ( d 3 d., ) t o - d l = 0 ) , and seeing if the resulting to lies in the portion of the p-edge corresponding to this part. The total work in each part is thus O(r), and as there are n parts, the algorithm runs in O(nr) time. We use this algorithm in a slightly modified setting: each p, is moving along a separate convex chain, and the q-points are fixed (at the reflex vertices of our polygon ). Neither ofthese changes affects the algorithm. Detecting whether t, crosses to can be done by checking the derivative of the associated quadratic whenever t, = to is detected. As r is fixed at 3 in our problem, this algorithm will run in linear time.

References [ I ] Aggarwal, A., H. Booth, J. O'Rourke, S. Suri and C. Yap (1985). Finding minimal convex nested polygons. Proc.

Figure 13. Findinga supportingchord, 744

ACM Symposium on Computational G(,ometry,296-304. [2] Cahn, R., R. Poulsen and G. Toussaint (1977). Segmentationof cervicalcell images.J. Histochemistryand O,tochetaistry 25, 681-688. [3] Chazelle, B. and D. Dobkin (1985). Optimal convex decompositions. In: G. Toussaint, Ed., Computational Geometry. North-Holland,Amsterdam.

Volume 14, Number 9

PATTERN RECOGNITION LETTERS

[4] Culberson, J. and R. Reckhow (1988). Covering polygons is NP-hard. 29th Annual ACM Conference on the Foundations of Computer Science. [5] Kay, D. and M. Guay (1970). Convexity and a certain property P,,. israel J. Math. 8, 39-52. [6] Lee, D. and F. Preparata (1979). An optimal algorithm for finding the kernel of a polygon. J. ACM 26, 415-421. [7] McKinney, R.L. (1966). On unions of two convex sets. Canad. J. Math. 18, 883-886. [8] Poulsen, R., L. 0liver, R. Cahn, C. Louis and G. Toussaint (1977). High resolution analysis of cervical cells - a progress report. J. Histochemistry and Cyto-chemistry 25, 689-695. [9] Shermer, T. (1989). Visibility Properties of Polygons, Ph.D. Thesis, McGili University.

September i 993

[IO1 Shermer, T. (1989). Hiding people in polygons. Computing 42, 109-131.

[Ill S~.amey,W. and J. Marr (1963). Unions of two convex sets. Canad. J. Math. 15, 152-156.

ll2l Tietze, H. (1929). Uber Konvexheit im Kleinen und im Grossen und fiber Gewissen Punkten einer Menge zugeordnete Dimensionszahlen. Math. Z. 28, 679-707. [13] Tamura, S., S. Mild, Y. Okamoto, M. Satake and M. Okuda (1985). Quantitative analysis of two-dimensional electrophoretograms using shape-fitting. Computers in Biology and Medicine 15, 123-132. [14l Valentine, F. (1957). A three point convexity property. Pacific J. Math. 7, 1227-1235.

745