Next Article in Journal
A Hybrid 3D-2D Image Registration Framework for Pedicle Screw Trajectory Registration between Intraoperative X-ray Image and Preoperative CT Image
Next Article in Special Issue
Three-Dimensional Reconstruction from a Single RGB Image Using Deep Learning: A Review
Previous Article in Journal
Practical Application of Augmented/Mixed Reality Technologies in Surgery of Abdominal Cancer Patients
Previous Article in Special Issue
A Hybrid Method for 3D Reconstruction of MR Images
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Detecting Cocircular Subsets of a Spherical Set of Points

School of Electrical Engineering, Tel-Aviv University, Tel-Aviv 69978, Israel
*
Author to whom correspondence should be addressed.
J. Imaging 2022, 8(7), 184; https://doi.org/10.3390/jimaging8070184
Submission received: 3 May 2022 / Revised: 26 June 2022 / Accepted: 1 July 2022 / Published: 5 July 2022
(This article belongs to the Special Issue Geometry Reconstruction from Images)

Abstract

:
Given a spherical set of points, we consider the detection of cocircular subsets of the data. We distinguish great circles from small circles, and develop algorithms for detecting cocircularities of both types. The suggested approach is an extension of the Hough transform. We address the unique parameter-space quantization issues arising due to the spherical geometry, present quantization schemes, and evaluate the quantization-induced errors. We demonstrate the proposed algorithms by detecting cocircular cities and airports on Earth’s spherical surface. These results facilitate the detection of great and small circles in spherical images.

1. Introduction

Given a spherical set of points, consider the problem of detecting the largest subset of cocircular points, i.e., the largest subset of points lying on the same circle on the sphere. One brute-force solution, related to RANSAC [1], is to examine all possible triplets of points in the point set. Note that each triplet (if not colinear) defines a plane, the intersection of the plane with the sphere defines a circle, and each point in the triplet clearly lies on the circle. The point set can then be searched for additional points lying on that circle. This O ( N 4 ) procedure, where N is the cardinality of the point set, is prohibitive for sizable point sets.
A cocircular subset of a spherical set of points is obviously coplanar. In special cases, the plane passes through the center of the sphere. In such cases, the intersection of the plane and the sphere is referred to as a great circle; see the green circle in Figure 1 (right). In the general case, when the plane does not pass through the center of the sphere, the intersection of the plane and the sphere is referred to as a small circle; see the blue and red circles in Figure 1 (right).
In the classical Hough transform [2], the problem of finding colinear points in the plane is replaced by the dual problem of finding concurrent lines or curves in a parameter space, often referred to as the Hough space. In practice, the parameter space is quantized and represented by an accumulator array, a voting process takes place, and finding the intersection of lines or curves in the parameter space is implemented as a search for the maximum. The Hough transform is fundamentally robust with respect to outliers, and has been formally associated with the M-estimation methodology for robust regression [3]. The Hough transform has also been related to conformal geometric algebra [4]. The time-complexity of the classical Hough transform is linear in the cardinality N of the dataset. Thus, when looking for the largest co-linear subset in a planar set of points, the Hough transform reduces the computational load from O ( N 3 ) (the cost of checking each possible pair of points in the data; determining the line that connects the pair; and, for each other data-point, testing whether it lies on that line) to O ( N ) .
The suggested approach to finding the largest subset of cocircular points in a spherical set of points is inspired by the Hough transform. Specifically, we characterize the circles (on the sphere) passing through a given point in the spherical set. The characterization is in the form of an equation constraining the parameters of the circles. We then search for the largest intersection of such equations, i.e., for the parameters specifying the circle passing through the largest possible number of points in the set.
As in the classical Hough transform, once the best-supported circle, i.e., the circle passing through the largest possible number of points, has been determined, finding the second-best-supported circle is straightforward. This can be reliably accomplished by identifying the data-points supporting the best circle, removing them from the dataset, and eliminating their contribution to the accumulator array (“unvoting”) [5,6,7]. Circle detection and unvoting can be iterated until all circles are found.
The precise function of the Hough transform is the detection of a geometric primitive, such as a straight line or circle, common to the largest possible subset of points in the dataset. Identifying the relevant points themselves can then be easily accomplished [5], but is not always necessary. Note that it is commonly said that the Hough transform detects geometric primitives in a digital image, but accomplishing this task in an actual image requires edge detection as a preprocessing step.
Images acquired using omnidirectional cameras can be represented as spherical images. Straight line segments in the scene are then transformed to great circle arcs in the spherical image. This has led to some interest in the detection of great circles in spherical images. With this motivation, Vasseur and Mouaddib [8] and Torii and Imiya [9] outlined a Hough algorithm and a randomized Hough algorithm, respectively, for great-circle detection on a sphere. These ideas have modern applications, such as road-line detection in driver-assistance systems [10].
In the detection of vanishing points, the search for convergence points in the image plane can be usefully replaced by the intersection of great circles on the Gaussian sphere [11]. This important task has been addressed using specialized Hough algorithms, leading to developments in spherical tessellation and discretization schemes [12,13] that are also useful in great-circle detection [14,15].
In geophysics, interest in great and small circle fitting arises in the context of volcano distribution analysis [16,17]. In these studies, specialized map projections transform great circles into an exact (gonomonic projection [17]) or approximate (UTM [16]) straight lines, allowing the use of the straight-line Hough transform [2] for great-circle detection. In the context of plate tectonics, Wessel [18] outlined the principles of a Hough transform for great-circle detection in the true spherical domain and sketched its generalization to small-circle detection. Wessel’s insightful concepts [18] have so far received surprisingly little attention.
In this paper, we present comprehensive solutions for the detection of cocircular subsets of a spherical set of points. We describe a geometric framework that supports both great- and small-circle detection and provide algorithms for both cases. We address the unique parameter-space quantization issues arising due to the spherical geometry, present quantization schemes, and evaluate the quantization-induced errors. We demonstrate the proposed algorithms by detecting cocircular cities and airports on Earth’s spherical surface.

2. Fundamentals

In this article, given a set of N > > 1 co-spherical points, we present a way to detect the circle that passes through the largest possible number of points in the set. It is easy to show that the circle itself necessarily lies on the sphere.
A point in 3D space can be defined by its spherical coordinates, consisting of the radial distance R from the origin, the polar angle θ , and the azimuthal angle φ ; see Figure 1 (left). Assuming co-spherical points, point i is determined by the angular coordinates θ i and φ i alone.
Given an anchor point in 3D space and a normal direction, one can determine a plane that passes through the anchor point and fits the normal direction. By itself, a normal direction defines a set of parallel planes.
Viewing the angular coordinates of a (primary) point on the sphere as a normal direction therefore associates a set of parallel planes with that point. The intersection of each such plane with the sphere is a (primary) circle, as shown in Figure 1 (right).
Any (secondary) point on a primary circle of radius r (point S 1 in Figure 2), viewed as a normal direction, defines a secondary circle of radius r passing through the primary point (point P in Figure 2). Thus, given a primary point and a radius r, each secondary point is the center of a circle of radius r passing through the primary point.
Since this property holds for any secondary point on a primary circle, a set of primary circles for primary points located on the same circle will intersect at a specific secondary point, which is the center of the circle passing through all the primary points. This is illustrated in Figure 3, where the red, blue, and green points are primary points on the same (black) circle of radius r. The corresponding primary circles of radius r intersect at the black secondary dot S, which defines the secondary circle (black) passing through all the primary points.
Now, given a set of unit co-spherical points, i.e., a set of points S = { ( θ i , φ i ) } located on the unit sphere, we look for the normal direction ( θ , φ ) that determines the circle of (pre-defined) radius r passing through the largest possible subset of points in S. The problem amounts to finding the largest co-circular (with given radius r) subset of S. We approach it by viewing each point ( θ i , φ i ) as a primary point corresponding to a primary circle of radius r. We view ( θ , φ ) as a secondary point corresponding to a secondary circle on which a point ( θ i , φ i ) lies. We select ( θ , φ ) , compatible with the largest possible number of primary points ( θ i , φ i ) . In other words, we select ( θ , φ ) , which is the largest intersection of primary circles.
As just presented, the problem and its solution strategy can be regarded as a generalization of the classical Hough transform for circles of known radius in the plane. In principle, one might indeed solve the problem by allocating a memory array on a spherical surface and incrementing memory cells on the primary circles corresponding to the data-set S = { ( θ i , φ i ) } (voting). The memory cell with the largest accumulation will then correspond to ( θ , φ ) , which is the largest intersection of primary circles, i.e., the normal direction defining the circle of radius r passing through the largest possible subset of points in S.
In practice, working with spherical memory arrays is highly inconvenient. We therefore carry out the computation using a planar memory array, where the orthogonal planar axes are θ and φ . Note, however, that the mapping of the conceptual spherical memory array to a planar array is non-trivial in both theory and practice, as is the drafting of planar maps of planet Earth [19]. As will be seen, this difficulty reveals itself in the context of the parameter-space quantization.
We can summarize these concepts as follows: Given a (unit) sphere and a radius r,
Property 1.
A primary point ( θ i , φ i ) on the sphere corresponds to a curve in the ( θ , φ ) parameter plane. The curve can be viewed as the mapping of the primary circle associated with the primary point from the sphere to the ( θ , φ ) plane.
Property 2.
A point in the ( θ , φ ) parameter plane corresponds to a secondary circle of radius r on the sphere.
Property 3.
Primary points lying on the same circle of radius r on the sphere correspond to curves through a common point in the ( θ , φ ) parameter plane.
In the next section, we determine θ as a function of φ (or φ as a function of θ ). This is the voting pattern associated with a data point ( θ i , φ i ) S .

3. The Voting Pattern

3.1. Derivation of the Voting Pattern

Consider a primary point ( X i , Y i , Z i ) on a unit sphere. We proceed to express the equation of the corresponding family of primary circles lying on parallel planes, as illustrated in Figure 1 (right). Generally, the equation of a plane in 3D space is of the form
a x + b y + c z = d
Note that ( a , b , c ) is the normal to the plane, and if it is normalized such that a 2 + b 2 + c 2 = 1 , then d is the distance of the plane from the origin.
Using Pythagoras’ theorem, for a unit sphere, the relation between d and the radius r of the circle is (see Figure 4):
r = 1 d 2
In Equation (1), ( a , b , c ) is the normal to the plane. Here the normal is defined by the primary point. In terms of its angular coordinates ( θ i , φ i ) ,
n = a b c = X i Y i Z i = sin θ i cos φ i sin θ i sin φ i cos θ i
Thus, the equation of the plane containing the primary circle is:
sin θ i cos φ i sin θ i sin φ i cos θ i x y z = d
The primary circle itself is the intersection of this plane with the unit sphere. In spherical coordinates, a point ( x , y , z ) on the unit sphere is
x y z = sin θ cos φ sin θ sin φ cos θ
Substituting in the plane Equation (4) we obtain
sin θ i cos φ i sin θ i sin φ i cos θ i sin θ cos φ sin θ sin φ cos θ = d
Rearranging this, we obtain a relation between the angular coordinates θ , φ of secondary points on the primary circle.
cos θ cos θ i + sin θ cos φ sin θ i cos φ i + sin θ sin φ sin θ i sin φ i = d
cos θ cos θ i + sin θ sin θ i ( cos φ cos φ i + sin φ sin φ i ) = d
cos θ cos θ i + sin θ sin θ i cos ( φ φ i ) = d
cos ( φ φ i ) = d sin θ sin θ i cot θ cot θ i
φ I = 2 π n + cos 1 ( d sin θ sin θ i cot θ cot θ i ) + φ i φ I I = 2 π n cos 1 ( d sin θ sin θ i cot θ cot θ i ) + φ i n Z
For a given primary point ( θ i , φ i ) and a plane distance d, Equation (8) determines the azimuthal angle φ of a secondary point in terms of the polar angle θ . The two solutions reflect the fact that a circle of latitude (defined by θ ) that intersects a primary circle (excluding the two circles of latitude that osculate the primary circle) intersects the primary circle at two points; see Figure 2 and Figure 3. The dependence on n is due to the periodicity of φ . Figure 5 shows the locus of { θ , φ } pairs for selected values of θ i , φ i , and d.
As shown in Figure 5 (top), for the case of a great circle ( d = 0 ) , we can express θ as a single-valued function of φ . Substituting d = 0 in Equation (7),
cos ( φ φ i ) = cot θ cot θ i
Solving for θ ,
θ = π n cot 1 ( cos ( φ φ i ) tan θ i ) n Z

3.2. Domain and Range of the Voting Pattern

We have so far seen that for a given primary point ( θ i , φ i ) , the φ coordinate of a secondary point ( θ , φ ) is obtained by substituting the θ coordinate in Equation (8). In this subsection, we proceed to show the dependence of the domain and the range of φ as a function of θ , as represented by Equation (8), on the primary point coordinates ( θ i , φ i ) and the distance d.
As shown in Figure 4, for a given distance d > 0 , each (spherical) circle of radius r (Equation (2)) on a unit sphere is uniquely defined by one (spherical) point on the unit sphere. Any such spherical point can be represented by the spherical coordinates θ [ 0 , π ) and φ [ 0 , 2 π ) . Therefore, any spherical circle with radius r < 1 is uniquely defined by θ [ 0 , π ) and φ [ 0 , 2 π ) .
In the case of great circles, d = 0 , the points ( θ , φ ) and ( π θ , π + φ ) (red points in Figure 6) define the same plane. In other words, each great circle (red) is represented by two spherical points, one at each hemisphere. Consider the subset of spherical points in the range θ [ 0 , π ) and φ [ 0 , π ) . There is a bijective transformation from this subset to the set of great circles on the unit sphere. To conclude, each spherical point with θ [ 0 , π ) and φ [ 0 , π ) uniquely defines a great circle.
Returning to the general case, for a given primary point ( θ i , φ i ) , the spherical points ( θ , φ ) that satisfy Equation (8) represent the secondary circles on which the primary point lies. We are interested in secondary points with φ [ 0 , 2 π ) , so n is selected such that φ I , φ I I [ 0 , 2 π ) .
Given a primary point and d, the domain of Equation (8) consists of θ coordinates of the secondary points. The θ value of the secondary points are such that the argument of the inverse cosine function satisfies
d sin θ sin θ i cot θ cot θ i [ 1 , 1 ]
| d sin θ sin θ i cot θ cot θ i | 1
d cos θ cos θ i sin θ sin θ i 1
Denote by θ l i m I , I I the limiting values of θ , i.e., the values corresponding to the two circles of latitude osculating the primary circle:
d cos θ l i m I , I I cos θ i sin θ l i m I , I I sin θ i = ± 1
d cos θ l i m I , I I cos θ i = ± sin θ l i m I , I I sin θ i
cos ( θ l i m I , I I θ i ) = d
θ l i m I , I I = 2 π n ± cos 1 ( d ) ± θ i
We choose n such that θ l i m I , I I [ 0 , π ) . Therefore, given a primary point and a distance d, the θ coordinate of any point on the secondary circle lies between θ l i m I [ 0 , π ) and θ l i m I I [ 0 , π ) . Note that the largest difference between θ i (of the primary point) and θ of a secondary point is obtained for any of the limiting values θ = θ l i m I , I I . The difference is the angle between the radius vectors pointing to the primary point and to either of the two points of osculation, and this angle is equal to cos 1 d .

3.3. Sphere of Radius R

The result expressed by Equations (8) and (10) can be easily generalized from the unit sphere to a sphere of radius R. The vector representing a point on the sphere (Equation (5)) is multiplied by R. Substituting in Equation (4), we obtain
R ( cos θ cos θ i + sin θ sin θ i cos ( φ φ i ) ) = d
where, generalizing Equation (2), d is now related to the radius of the circle by d = R 2 r 2 . Thus, Equations (6) and (8) will hold if d is replaced by d R , where
d R = d R = R 2 r 2 R = 1 ( r R ) 2
So, technically, an algorithm to search for circles of radius r on a unit sphere can be readily applied to spheres of radius R by normalizing the circle radius r by R.

4. Algorithm for Great-Circle Detection

In this section, we present an algorithm for finding great circles on a sphere. More accurately, given a set S = { ( θ i , φ i ) } of N co-spherical points, we find the great circle that passes through the largest subset of S. Specifically, the (secondary) great circle passing through the largest possible subset of (primary) points is defined by the (secondary) point ( φ m a x , θ m a x ) . The algorithm belongs to the Hough transform family, since it is based on voting in a quantized parameter space.
The parameter plane is ( φ , θ ) is limited to the rectangle φ [ 0 , π ) θ [ 0 , π ) and tessellated by rectangular cells. Note that, in the case of great circles, Equation (10) specifies θ as a function of φ , hence the parameterization is expressed as ( φ , θ ) . In the general case, where Equation (8) determines φ as a function of θ , the parametrization will be written as ( θ , φ ) . Each cell represents a subset of (secondary) spherical points, and is of the form φ [ φ ˜ Δ φ 2 , φ ˜ + Δ φ 2 ] and θ [ θ ˜ Δ θ 2 , θ ˜ + Δ θ 2 ] , where ( φ ˜ , θ ˜ ) is the center of the cell. In common Hough algorithms, the cells are of uniform shape and size, their centers form a set of rectangular grid points, and each cell is represented by an accumulator M ( i , j ) in a memory array, referred to as the accumulator array.
For each (primary) point in the data-set, we compute θ as a function of φ (Equation (10)) and increment the accumulators M ( i , j ) corresponding to cells along the θ ( φ ) curve. The accumulation stage of the algorithm can be visualized as drawing the discretized curves θ ( φ ) in the ( φ , θ ) parameter plane for all primary points. Eventually, the indices ( i m a x , j m a x ) of the accumulator with the maximal reading represent the parameters ( φ m a x , θ m a x ) of the great circle. Rather than determining all the cells that the curve θ ( φ ) passes through, the common Hough transform practice is to approximate the process by sampling the argument ( φ ) and quantizing the function ( θ ). This leads in our case to Algorithm 1:
Algorithm 1: great-circle detection
Initialize the matrix (accumulator array) M with zeros.
For each primary point 1 to N
        For each φ [ 0 , π ) step Δ φ
               Calculate θ ( φ ) by Equation (10).
               Round each θ ( φ ) to the nearest integer multiple of Δ θ .
               Increment the accumulator of M corresponding to ( φ , θ ) .
Find φ m a x and θ m a x corresponding to the entry with the largest accumulation in M.
The computational complexity of the algorithm is linear in the number of primary points N. With rectangular tessellation of the parameter plane, the computational load also depends on the number of discrete φ values, N φ = π / Δ φ , and on the number of discrete θ values, N θ = π / Δ θ . Specifically, the computational complexity of the voting stage is O ( N · N φ ) and that of the search stage is O ( N φ · N θ ) .
Note that the approximation, sampling θ and quantizing φ rather than determining the cells that the curve θ ( φ ) passes through, leads to a pitfall. Since the magnitude of the slope of θ ( φ ) can be large, the discretized θ ( φ ) curves may not be digitally connected [20]. Thus, they may not intersect in the digital domain even though they do intersect in the continuous domain. This hazard may not be apparent in cases where N is large and intersections are dense, but may manifest itself in cases where N is small. This may then lead to peak-spreading in the parameter plane, and consequently to misdetection and poor localization of peaks. In contrast, if the approximation is discarded and the cells intersected by the curve are incremented, the discretization of the curve amounts to the classical square quantization scheme [21], and the discretized curve is digitally connected.

5. Algorithm for General (Radius r) Circle Detection on a Sphere

We now consider the more general problem—detecting circles of any given radius r on the sphere. Here, the given circle radius may not coincide with the radius of the sphere; hence, the circles to be detected are not necessarily great circles. Formally, given a set S = { ( θ i , φ i ) } of co-spherical points and a circle radius r, we find the circle of radius r passing through the largest subset of S. In this case, the parameter plane is limited to a larger rectangle θ [ 0 , π ) φ [ 0 , 2 π ) . We compute φ I and φ I I as a function of θ for each primary point using Equation (8), and increment the accumulators corresponding to cells intersected by the φ I , I I ( θ ) curves. Approximating the process by sampling the argument θ and quantizing the functions φ I , I I leads to Algorithm 2:
Algorithm 2: General (any given radius r) circle detection on a sphere
Initialize the matrix (accumulator array) M with zeros.
Normalize the radius r by the sphere radius R.
Calculate d by Equation (2).
For each primary point 1 to N
      For each θ [ 0 , π ) step Δ θ
            If θ satisfies Equation (11) then
                  Calculate φ I ( θ ) and φ I I ( θ ) by Equation (8).
                  Round φ I , I I ( θ ) [ 0 , 2 π ) to the nearest integer multiples of Δ φ .
                  Increment the accumulators of M corresponding to ( θ , φ I , I I ) .
Find θ m a x and φ m a x corresponding to the entry with the largest accumulation in M.
Here the computational complexity of the voting stage is O ( N · N θ ) and that of the search stage is again O ( N θ · N φ ) , where in this case N θ = 2 π / Δ θ . The accumulation stage of Algorithm 2 can be visualized as drawing the discretized φ I , I I ( θ ) curves in the ( θ , φ ) parameter plane for all primary points. As discussed in Section 4, care should again be taken when considering the use of the voting approximation (sampling the argument θ and quantizing the functions φ I , I I rather than determining the cells that the curves pass through).

6. Parameter-Space Quantization and Error Analysis

6.1. Preliminaries and Motivation

In Hough transform algorithms [2], a data (image) point is mapped into a space of parameters for a class of geometric primitives (such as straight lines). The parameter space is quantized into cells and represented by an array of accumulators. The mapping is carried out by incrementation of the relevant accumulators (voting). Once all data points have voted, a search for the maximum in the accumulator array reveals the parameters of the geometric primitive instance that are best supported by the data.
Parameter space quantization is an essential element of the Hough transform. On the one hand, it determines the resolution of the output parameters. On the other hand, it reflects the tolerance of the algorithm to location errors in the data. Thus, coarse quantization leads to poor output resolution, but quantization that is too fine may lead, in the presence of data location errors, to peak-spreading in the accumulator array and consequent detection errors.
In the Hough transform for straight lines using the normal parameterization, uniform quantization of the ( ρ , θ ) parameter space into cells of equal size implies an equal (translation- and rotation-invariant) measure of the infinite set of straight lines represented by each cell [2,22,23]. In the proposed algorithms for great- and small-circle detection on a sphere, the parameter space is (in principle) an isomorphic spherical parameter space. This is analogous to the isomorphism between the image space and the parameter space in the Hough transform for circles of known radius [2]. Note that the area of a cell in the spherical parameter space is, due to rotational symmetry, a rotation-invariant measure of the infinite set of the spherical circles represented by the cell. We therefore wish to quantizate the spherical parameter space into cells of similar area.

6.2. Towards Uniform Spherical Quantization

Working with spherical memory arrays is currently impractical. We therefore carry out the computation using a planar memory array, where the orthogonal planar axes are θ and φ . Nevertheless, mapping the conceptual spherical array to a planar array is problematic [19]. Specifically, in the context of parameter-space quantization, uniform (rectangular) quantization in the plane, via uniform quantization of the individual angular coordinates θ and φ , corresponds to cells of non-uniform area on the sphere. Assuming small quantization steps Δ θ and Δ φ in the plane, the spherical surface area of the corresponding cell at θ and φ is approximately
Δ S Δ θ Δ φ sin θ
where Δ S is largest at the equator, where θ = π / 2 , and equal to Δ θ Δ φ . For non unit spheres, Δ S is scaled by R 2 where R is the radius.
Cells of non-uniform area imply biased voting. One way to handle bias is by normalizing each accumulator count by the area of the corresponding cell. Note, however, that the normalization is associated with singularity at the poles. Lutton et al. [13] suggested using almost-equal-sized cell quantization, letting Δ φ depend on θ ; see Figure 7. In our case, almost-equal-sized cell quantization is obtained by letting
Δ φ n = Δ S Δ θ sin θ n
where the layer number n is obtained by rounding θ / Δ θ to the nearest integer, θ n = n Δ θ , and Δ S is the almost uniform cell size (spherical surface area).
When voting into the (non-uniform) planar array corresponding to almost-equal-sized cells on the sphere, we again need to decide whether to increment all cells through which the continuous voting curve passes, or to employ the approximation—sampling θ and quantizing φ in the context of general circles. The two options are illustrated in Figure 8. Incrementing all cells through which the continuous voting curve passes means voting for both the blue and green cells. In contrast, sampling θ and quantizing φ generates (the centers of) the green cells alone.
In our analysis and experiments, the first option is followed, i.e., the approximation is not employed and all cells through which the continuous voting curve passes are incremented. Technically, referring to Figure 9, at layer θ n we increment the accumulator(s) between A and B inclusively.

6.3. The Distance of Primary Points from the Common Secondary Circle

Consider the cell centered at ( θ m a x , φ m a x ) that received the largest number of votes from primary points. In other words, the cell centered at ( θ m a x , φ m a x ) is the one intersected by the largest number of primary circles centered at primary points. Due to primary points’ location errors, and due to the finite (i.e., not infinitesimal) cell size, the primary circles intersecting the cell do not usually intersect at a single point within the cell themselves. Thus, typically, the primary points that have voted for the cell are only roughly co-circular. The common secondary circle passing near these primary points is defined by the approximate secondary point ( θ m a x , φ m a x ) , i.e., by the center of the cell.
What is the maximum distance of the primary points contributing to the cell from the secondary circle defined by ( θ m a x , φ m a x ) ? Furthermore, how does this depend on the finite cell size? This distance determines, on the one hand, the resolution of the algorithm and, on the other hand, its tolerance to noise (errors) in the location of the data (primary) points. To answer these questions, we calculate the distance between the common secondary circle (the black circle in Figure 10) and the circles defined by the four corners of the cell. The coordinates of the four corners are
( θ m a x + Δ θ 2 , φ m a x + Δ φ k 2 ) ( θ m a x + Δ θ 2 , φ m a x Δ φ k 2 ) ( θ m a x Δ θ 2 , φ m a x + Δ φ k 2 ) ( θ m a x Δ θ 2 , φ m a x Δ φ k 2 )
where Δ φ k is the layer-dependent quantization step (Equation (14)) at θ k = θ m a x , and the corresponding circles are shown blue in Figure 10.
Given one of the (corner) circles defined by a corner point (the blue circle in Figure 11), the largest distance from the common secondary circle is achieved by two critical points (red points in Figure 11) on the corner circle. One critical point is closer than the common secondary circle to the cell center, whereas the other critical point is more distant than the common secondary circle from the cell center.
Consider any of the two critical points and its respective closest point on the secondary circle. Viewing the critical point and its closest point as (spherical) radius vectors, let γ denote the angle between them. Let a denote the radius vector corresponding to the secondary point ( θ m a x , φ m a x ) , and let b denote the radius vector associated with the corner point. Referring to Figure 12 (left), we observe that, since a is normal to the secondary circle and b is normal to the corner circle, γ is also the angle between a and b. Assuming a unit sphere,
γ = cos 1 ( a · b )
The angle γ can be viewed as an angular distance measure between the cell center ( θ m a x , φ m a x ) and one of its corners. With almost-equal-sized cell quantization, γ is similar between cells and between corner points of a particular cell.
Cells have four corner points. Each corner point is associated with two critical points, one closer to and one more distant from the cell center. The eight critical points can be divided into two subsets, each with four critical points. One subset contains the four critical points, shown red in Figure 13 (left), closer to the cell center, whereas the other subset contains the four critical points more distant from the cell center, shown in red in Figure 13 (right). The angular distance γ between any of the eight critical points and its closest point on the common secondary circle is similar. This means that the four critical points in each of the two subsets are nearly co-circular. The two circles, shown in red in Figure 13, each defined by the four critical points in each of the two subsets, are referred to as lower and higher critical circles. They are on planes parallel to each other and also to the secondary circle plane, where the lower critical circle is closer to the origin and the higher is more distant from the origin. Specifically, their distances from the origin are
d l o w e r = cos ( cos 1 d + γ ) d h i g h e r = cos ( cos 1 d γ )
The spherical radius vector defined by the angular coordinates ( θ m a x , φ m a x ) of the secondary point passes through the centers of the secondary circle and the two critical circles, and is perpendicular to (the planes containing) them; see Figure 12 (right).
Referring to Figure 14, let P be a primary point of which the primary circle (blue point and blue circle) votes for a cell centered at ( θ m a x , φ m a x ) . In other words, the primary circle defined by the primary point P intersects the cell ( θ m a x , φ m a x ) . This implies that the coordinates of any point on the primary circle within the cell, i.e., any secondary point S in the cell (green point), are bounded between θ = ( θ m a x Δ θ / 2 , θ m a x + Δ θ / 2 ] and φ = ( φ m a x Δ φ k / 2 , φ m a x + Δ φ k / 2 ] . Consider the common secondary circle defined by the cell center (black circle) and the nearby secondary circle associated with any other secondary point within the cell (green circle). The nearby secondary circle passes through the primary point P, whereas the common secondary circle generally passes just near P.
The angle between the radius-vector pointing at the cell center and the radius vector pointing at the nearby secondary point is less than or equal to γ , and equality to γ is achieved when the nearby secondary point coincides with one of the corner points of the cell. The radius vectors are normals of the planes containing these circles. So, the angle between the plane containing the common secondary circle and the plane containing the nearby secondary circle is less than γ . The critical circles are defined such that the angle between the radius vector pointing to a point on the critical circle and the radius vector pointing to its closest point on the common secondary circle is γ . So, the nearby secondary circle lies on a spherical segment (see Figure 15) containing the common secondary circle and delimited by the two critical circles (red circles in Figure 14 and Figure 15). In other words, the angle between the radius vector pointing to the primary point P and the radius vector pointing to its closest point on the common secondary circle is less than γ . Hence, the orthodromic distance (great circle distance) of the primary point P to each point on the common secondary circle is upper-bounded by R · γ , where R is the radius of the sphere.
As shown in Appendix A, γ can be readily expressed in terms of the almost-equal-sized cellquantization parameters, Δ S and Δ θ . For a unit sphere
γ 1 2 ( Δ θ ) 2 + Δ S Δ θ 2
In this case γ is approximately half of the diagonal of the almost-equal-sized cell. For a sphere of radius R, Δ S in Equation (17) should be scaled down by R 2 .
To conclude, the primary point of which the primary circle votes for a cell centered at ( θ m a x , φ m a x ) is located on the spherical segment defined by the cell center. The orthodromic distance between the primary point and the common secondary circle (defined by the cell center) is upper-bounded by R · γ , where R is the sphere radius and γ is the central angle between the radius vector ( θ m a x , φ m a x ) and one of the radius vectors ( θ m a x ± Δ θ / 2 , φ m a x ± Δ φ k / 2 ) pointing at the cell corners, expressible in terms of the almost-equal-sized cell area.

6.4. Improved Algorithm for General (Radius r) Circle Detection on a Sphere

Consider the problem of general (any given radius r) circle detection on a sphere, as presented in Section 5. We now apply the almost-equal-sized cell quantization scheme, and vote for all cells intersected by the voting curve. For each primary point in the dataset, the algorithm first calculates the limiting values of θ , and loops over all multiples of Δ θ between the limiting values θ l i m I , I I . For each θ , it computes the φ [ 0 , 2 π ) coordinates of the points A and B by substituting θ ± Δ θ / 2 in Equation (8). It then increments all the accumulators which correspond to the discrete points with θ and φ [ φ A , φ B ] . Finally, the accumulator ( θ m a x , φ m a x ) with the maximal reading indicates the spherical circle of radius r passing through the largest subset of (primary) points in the data-set. This leads to Algorithm 3:
Note that the accumulator array M in this algorithm is no longer a rectangular matrix. The azimuthal step between adjacent accumulators in the θ i layer is θ -dependent and equals Δ φ i . Therefore, the number of accumulators in each θ i is different. Figure 16 (left) shows the accumulator array in the θ φ plane. In Figure 16 (right), the accumulators are represented by identical rectangles, where the i axis represents the nearest integer multiple of Δ θ and the j axis represents the nearest integer multiple of Δ φ i .
Algorithm 3: Improved general circle detection on a sphere
Initialize the accumulator array M with zeros.
Normalize the radius r by the sphere radius R.
Calculate d by Equation (2).
For each primary point 1 to N
      Calculate θ l i m I , I I [ 0 , π ) by Equation (12).
      For each θ = i · Δ θ ( i Z ) from min { θ l i m I , I I } until max { θ l i m I , I I } :
            For both φ I and φ I I in Equation (8):
                  1. Calculate Δ φ i by Equation (14).
                  2. Calculate φ A I and φ B I I by substituting θ ± Δ θ 2 in Equation (8).
                  3. Choose n such that φ A = φ A I , I I [ 0 , 2 π ) and φ B = φ B I , I I [ 0 , 2 π )
                  4. Round φ A and φ B to the nearest integer multiples of Δ φ i .
                  5. Increment the accumulators from to ( φ A , θ ) to ( φ B , θ )
Find θ m a x and φ m a x corresponding to the entry with the largest accumulation in M.

7. Great Circle Examples

What is the great circle on planet Earth that passes through the largest number of airports? Furthermore, what is the great circle that passes through the largest number of cities? We answer these questions using the proposed algorithms, relying on city [24] and airport [25] databases.

7.1. Uniform Quantization in the Plane (Algorithm 1) Examples

(1)
We execute Algorithm 1, taking the world’s major airports (red dots in Figure 17) as input primary points (a total of 617 points). The parameter space is discretized with Δ φ = Δ θ = 0.5 . The great circle that passes through the maximum number of airports (blue circle in Figure 17) is on the great circle plane with normal θ m a x = 55.25 , φ m a x = 151.25 and visits 29 airports, listed in Appendix B. Note that here and in the following, the number of digits after the decimal point in θ m a x and φ m a x relates to the location of the cell center. Obviously, the accuracy of the detected circle parameters follows from the cell size, i.e., from Δ θ and Δ φ . In order to find the circle passing through the largest number of remaining airports (excluding the 29 airports associated with the first maximum), we identify all primary points of which the voting contributed to the first maximum and remove their votes (unvote [5,6,7]). The new maximum represents the great circle passing through the largest subset of remaining (primary) points in the data-set. It lies on the great circle plane with normal θ m a x 2 = 54.75 , φ m a x 2 = 157.75 and visits 28 different airports.
(2)
We again execute Algorithm 1, this time taking 12,960 world cities (red dots in Figure 18) as input primary points. The parameter space is discretized with Δ φ = Δ θ = 0.25 . The great circle (blue circle in Figure 18) that passes through the maximum number of cities is on the great circle plane with normal θ m a x = 53.625 , φ m a x = 156.375 and visits 397 different cities. The great circle that passes through the maximum number of remaining cities (i.e., the maximum after unvoting) is on the great circle plane with normal θ m a x 2 = 72.875 , φ m a x 2 = 18.375 and visits 321 cities.
(3)
We execute the algorithm in order to find the great circle that passes through a specific airport and the maximum number of other airports. Instead of searching for the maximum value in all the accumulators, we search only in accumulators along the θ ( φ ) curve corresponding to the specific airport. This reduces the computation time, since we search in N φ instead of N φ · N θ accumulators.
Taking Cape Town International Airport as the specific airport, the great circle that passes through Cape Town International Airport and through the maximum number of other airports is defined by the normal direction θ m a x = 84.25 , φ m a x = 104.75 (blue circle in Figure 19) and visits 16 different airports, listed in Appendix C. In this case, the discretization of the parameter space is Δ φ = Δ θ = 0.5 . The great circle that passes through Cape Town International Airport and through the maximum number of remaining airports (the maximum after unvoting, i.e., excluding the airports associated with the first maximum) is on the great circle plane with normal θ m a x 2 = 37.75 , φ m a x 2 = 48 . 75 and visits 13 different airports.

7.2. Almost-Equal-Sized Cell Quantization Examples

We now address the same great-circle detection tasks using almost-equal-sized cell quantization. To achieve this, we apply Algorithm 3 (general circle detection) with r = R hence d = 0 .
(1)
We execute Algorithm 3 with d = 0 , taking the world’s major airports as primary input points. We set Δ θ = 0.5 and Δ S = π 360 · π 360 = π 2 129,600 [ Rad 2 ] , which yields accuracy similar to the worst-case accuracy (at θ = π / 2 ) in the above uniform quantization example. The great circle (the blue circle in Figure 20) that passes through the maximum number of airports is on the great circle plane with normal θ m a x = 53.75 , φ m a x = 156.4544 . It visits 30 different airports, listed in Appendix D. The great circle that passes through the largest number of remaining airports (the maximum after unvoting) is on the great circle plane with θ m a x 2 = 124.25 , φ m a x 2 = 331.8655 and visits 27 airports.
(2)
We execute Algorithm 3 with d = 0 , taking 12,960 world cities (red dots in Figure 18) as input primary points. We set Δ θ = 0.25 and Δ S = π 720 · π 720 = π 2 518,400 [ Rad 2 ] . The great circle (the blue circle in Figure 21) that passes through the maximum number of cities is on the great circle plane with normal θ m a x = 53.625 , φ m a x = 156.3934 and visits 425 cities. The great circle that passes through the maximum number of remaining cities (the maximum after unvoting) is on the great circle plane with normal θ m a x 2 = 72.375 , φ m a x 2 = 18.7609 and visits 335 cities.
(3)
We execute Algorithm 3 with d = 0 in order to find the great circle that passes through a specific airport and through the maximum number of other airports. Instead of searching for the maximum value in all the accumulators, we search only in accumulators along the θ ( φ ) curve corresponding to the specific airport. We again take Cape Town International Airport as the specific airport, now with Δ θ = 0.5 and Δ S = π 360 · π 360 = π 2 129,600 [ R a d 2 ] . The great circle (the blue circle in Figure 22) that passes through Cape Town International Airport and through the maximum number of other airports is defined by the normal direction θ m a x = 37.75 , φ m a x = 49.3878 , and visits 15 different airports listed in Appendix E. The great circle that passes through the Cape Town International Airport and through the maximum number of remaining airports (the maximum after unvoting, i.e., excluding the airports associated with the first maximum) is on the great circle plane with normal θ m a x 2 = 84.25 , φ m a x 2 = 104.8324 and visits 14 different airports.
The number of data points (airports or cities) associated with the great circle detected depends on the size of the parameter-space quantization cells, i.e., on the quantization level. For the examples in this subsection (almost-equal-sized cell quantization), the dependence is presented in Appendix F.
The differences between the results obtained with uniform quantization in the plane and the those achieved using almost-equal-sized cell quantization are due to the non-equal cell sizes on the sphere yielded by uniform quantization in the plane. Referring to Figure 23, with uniform quantization in the plane (Figure 23 (left)), cells that are close to the equator are larger than cells close to the poles. In contrast, with almost-equal-sized cell quantization (Figure 23 (right)), all cells have approximately the same size. In the above experiments, we chose Δ S such that the smallest Δ φ k in the almost-equal-sized quantization scheme was equal to Δ φ used in uniform quantization in the plane. Thus, with almost-equal-sized quantization, the size of the cell on the sphere is larger or equal to that obtained using uniform quantization in the plane. In other words, given cell coordinates θ m a x and φ m a x on the sphere, the cell at these coordinates using almost-equal-sized cell quantization is larger or equal in area to the cell at the same coordinates using uniform quantization in the plane. Thus, although the great circle on planet Earth that passes through the largest number of cities is about θ m a x = 53.625 , φ m a x = 156.125 using both quantization schemes, with uniform quantization in the plane it is associated with 397 cities, whereas with almost-equal-sized cell quantization the number of cities is 425.

8. General (Small) Circle Examples

In the previous section we found great circles on planet Earth passing through the largest possible number of airports or cities. In this section, we detect small circles of a given radius r that visit as many airports or cities as possible. We use algorithm 3 (almost-equal-sized cell quantization). We normalize the radius of the sphere (planet earth) to R = 1 ; hence, 0 < r < 1 .
(1)
We execute algorithm 3 with r = 0.25 ( d 0.968 ) , taking the world’s largest airports as input primary points. We set Δ θ = 0.5 and Δ S = π 360 · π 360 = π 2 129,600 [ Rad 2 ] . The circle of radius r = 0.25 that passes through the maximum number of airports (the blue circle in Figure 24) is on the circle plane with normal θ m a x = 47.75 , φ m a x = 256.998 and visits 20 large airports. The circle of radius r = 0.25 that passes through the largest number of remaining airports (red circle in Figure 24, corresponding to the maximum after unvoting) is on the circle plane with normal θ m a x 2 = 40.75 , φ m a x 2 = 269.2340 and visits 19 different airports.
(2)
We now execute algorithm 3 with r = 0.5 ( d 0.866 ) , again taking the world’s largest airports as input primary points. We set Δ θ = 0.5 and Δ S = π 360 · π 360 = π 2 129,600 [ Rad 2 ] . The circle of radius r = 0.5 that passes through the maximum number of airports (the blue circle in Figure 25) is on the circle plane with normal θ m a x = 27.25 , φ m a x = 313.6364 and visits 20 large airports. The circle of radius r = 0.5 that passes through the largest number of remaining airports (red circle in Figure 25, corresponding to the maximum after unvoting) is on the circle plane with normal θ m a x 2 = 45.25 , φ m a x 2 = 313.8552 and visits 19 different airports.
(3)
We execute algorithm 3 with r = 0.125 ( d 0.992 ) , this time taking the input primary points from the city database. We set Δ θ = 0.5 and Δ S = π 360 · π 360 = π 2 129,600 [ Rad 2 ] . The circle of radius r = 0.125 that passes through the maximum number of cities (the blue circle in Figure 26) is on the circle plane with normal θ m a x = 43.7500 , φ m a x = 280.1205 and visits 616 cities. The circle of radius r = 0.125 that passes through the largest number of remaining cities (the black circle in Figure 26, corresponding to the maximum after unvoting) is on the circle plane with normal θ m a x 2 = 52.7500 , φ m a x 2 = 270.4712 and visits 386 cities.
(4)
We execute algorithm 3, now with r = 0.5 ( d 0.866 ) , taking the input primary points from the city database. We set Δ θ = 0.5 and Δ S = π 360 · π 360 = π 2 129,600 [ Rad 2 ] . The circle of radius r = 0.5 that passes through the maximum number of cities (the blue circle in Figure 27) is on the circle plane with normal θ m a x = 26.7500 , φ m a x = 251.6667 and visits 568 cities. The circle of radius r = 0.5 that passes through the largest number of remaining cities (the black circle in Figure 26, corresponding to the maximum after unvoting) is on the circle plane with normal θ m a x 2 = 72.2500 , φ m a x 2 = 251.6327 and visits 523 cities.
The experimental results in Section 7 and Section 8 were obtained using Matlab on a low-end personal computer with i5-8265U 1.6GHz CPU and 8.00 GB RAM. The Matlab computing time for the various experiments is summarized in Table 1. As expected, computing time was roughly proportional to the number of data points, and increased as the parameter space quantization was refined.

9. Conclusions

In this paper we present the first comprehensive solution to the problem of detecting circles, great and small, in a spherical set of points. The suggested approach follows the Hough transform methodology and addresses the fundamental issues associated with Hough algorithms, including parameterization, parameter-space quantization, and analysis of the quantization-induced error. The time-complexity of the proposed algorithms is linear in the number of data-points. The required memory size is simply the number of cells in the accumulator array, which is bounded and two-dimensional in the case of great circles and in the case of small circles of known radius.
Potential applications for this research arise in cases where the data are naturally spherical and where circular features need to be detected. The planetary and geophysical sciences provide numerous examples, including crater and volcano detection. Computer vision applications arise in omnidirectional image analysis, including fisheye image analysis, where spherical image representations are ubiquitous.
The proposed method can be readily extended to the detection of circles of unknown radius in a spherical set of points. The additional unknown can be accommodated either by sequentially applying the known-radius algorithm with different radii, or by adding a dimension representing the unknown radius to the accumulator array.

Author Contributions

Conceptualization, N.K.; Formal analysis, B.I.; Investigation, B.I.; Methodology, N.K.; Software, B.I.; Supervision, N.K.; Writing—original draft, B.I.; Writing—review and editing, N.K. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Expressing the Angle γ in Terms of ΔS and Δθ

In this appendix we express the angle γ between the radius vector pointing at the cell center ( θ m a x , φ m a x ) and that pointing to any of its corners, such as ( θ m a x + Δ θ / 2 , φ m a x + Δ φ k / 2 ) .
Assuming a unit sphere, the chord length between the two vector tips is
C = ( Δ x ) 2 + ( Δ y ) 2 + ( Δ z ) 2
where
Δ x = sin θ cos φ sin ( θ + Δ θ 2 ) cos ( φ + Δ φ k 2 ) Δ y = sin θ sin φ sin ( θ + Δ θ 2 ) sin ( φ + Δ φ k 2 ) Δ z = cos θ cos ( θ + Δ θ 2 )
Applying the first-order Taylor series approximation to sin ( θ + Δ θ 2 ) and cos ( φ + Δ φ k 2 ) ,
Δ x Δ θ 2 cos θ cos φ + Δ φ k 2 sin θ sin φ + Δ φ k Δ θ 4 cos θ sin φ Δ y Δ θ 2 cos θ sin φ Δ φ k 2 sin θ cos φ + Δ φ k Δ θ 4 cos θ cos φ Δ z + Δ θ 2 sin θ
The third terms in Δ x and Δ y are negligible (second-order) compared to the other (first-order) terms. Substituting Equation (14),
Δ x Δ θ 2 cos θ cos φ + Δ S 2 Δ θ sin φ Δ y Δ θ 2 cos θ sin φ Δ S 2 Δ θ cos φ Δ z + Δ θ 2 sin θ
Squaring, we obtain
( Δ x ) 2 ( Δ θ ) 2 4 cos 2 θ cos 2 φ + ( Δ S ) 2 4 ( Δ θ ) 2 sin 2 φ Δ S 4 cos θ cos φ sin φ ( Δ y ) 2 ( Δ θ ) 2 4 cos 2 θ sin 2 φ + ( Δ S ) 2 4 ( Δ θ ) 2 cos 2 φ + Δ S 4 cos θ sin φ cos φ ( Δ z ) 2 ( Δ θ ) 2 4 sin 2 θ
Substituting in the definition of C,
C ( Δ θ ) 2 4 cos 2 θ ( cos 2 φ + sin 2 φ ) + sin 2 θ + ( Δ S ) 2 4 ( Δ θ ) 2 sin 2 φ + cos 2 φ 1 2 ( Δ θ ) 2 + Δ S Δ θ 2
Thus, the central angle γ between the two vectors is
γ = arcsin C C 1 2 ( Δ θ ) 2 + Δ S Δ θ 2

Appendix B. The 29 Airports Located on the Great Circle That Passes through the Maximum Number of Airports—Uniform Quantization

Airport NameLatitudeLongitude Δ γ [ O ]
1Prishtina International Airport42.57280021.0358010.289202
2Pierre Elliott Trudeau Airport (Montreal)45.470600−73.7407990.066198
3Brussels South Charleroi Airport50.4592024.4538200.108124
4Stuttgart Airport48.6898999.2219600.032867
5Karlsruhe Baden-Baden Airport48.7794008.0805000.265290
6Luton Airport (London)51.874699−0.3683330.120182
7Heathrow Airport (London)51.470600−0.4619410.274561
8Stansted Airport (London)51.8849980.2350000.276526
9RAF (Brize Norton)51.750000−1.5836200.282675
10Findel International Airport (Luxembourg)49.6233336.2044440.116230
11Ramstein Air Base49.4369017.6002800.153979
12Buffalo Niagara International Airport42.940498−78.7322010.087453
13John Glenn Columbus International Airport39.998001−82.8918990.134049
14Corpus Christi International Airport27.770399−97.5011980.120094
15Cincinnati Northern Kentucky Airport39.048801−84.6678010.086447
16Erie International Tom Ridge Field42.083127−80.1738670.101441
17William P Hobby Airport (Houston)29.645399−95.2789000.141916
18George Bush Intercontinental Airport (Houston)29.984400−95.3414000.121704
19Rickenbacker International Airport (Columbus)39.813801−82.9278030.253096
20Memphis International Airport35.042400−89.9767000.199325
21Monroe Regional Airport32.510899−92.0376970.292742
22Greater Rochester International Airport43.118900−77.6724010.256870
23Louisville International Standiford Field38.174400−85.7360000.020793
24Paphos International Airport34.71799932.4856990.020407
25RAF (Akrotiri)34.59040132.9879000.189568
26Zagreb Airport45.74290116.0688000.085825
27Joe Punik Airport (Ljubljana)46.22370114.4576000.158587
28Don Miguel International Airport (Guadalajara)20.521799−103.3109970.288277
29Queen Alia International Airport (Amman)31.72260135.9931980.086299

Appendix C. The 16 Airports Located on the Great Circle That Passes through Cape Town and the Maximum Number of Other Airports—Uniform Quantization

Airport NameLatitudeLongitude Δ γ [ O ]
1Cape Town International Airport−33.96480218.6017000.030981
2Tunis Carthage International Airport36.85100210.2272000.154490
3Munster Osnabrck Airport52.1346027.6848300.227835
4Cologne Bonn Airport50.8658987.1427400.310424
5Dortmund Airport51.5182997.6122400.085782
6Karlsruhe Baden-Baden Airport48.7794008.0805000.045184
7Bergen Airport Flesland60.2934005.2181400.307745
8Stavanger Airport Sola58.8767015.6377800.247560
9Ramstein Air Base49.4369017.6002800.253077
10Hosea Kutako Airport (Windhoek)−22.47990017.4709000.305683
11Ndjili International Airport (Kinshasa)−4.38575015.4446000.250095
12Malpensa International Airport (Milan)45.6306008.7281100.078630
13Genoa Cristoforo Colombo Airport (Genova)44.4133008.8375000.177389
14Milano Linate Airport (Milan)45.4450999.2767400.275585
15Zurich Airport (Zurich)47.4646998.5491700.067036
16Hammamet International Airport (Enfidha)36.07583310.4386110.083588

Appendix D. The 30 Airports Located on the Great Circle That Passes through the Maximum Number of Airports—Almost-Equal-Sized Cell Quantization

Airport NameLatitudeLongitude Δ γ [ O ]
1South Charleroi Airport (Brussels)50.4592024.4538200.154079
2Munich Airport48.35380211.7861000.267122
3Stuttgart Airport48.6898999.2219600.199825
4Gatwick Airport (London)51.148102−0.1902780.226057
5Heathrow Airport (London)51.470600−0.4619410.025712
6RAF (Fairford)51.682201−1.7900300.026802
7RAF (Brize Norton)51.750000−1.5836200.076266
8Shannon Airport52.702000−8.9248200.141270
9Findel International Airport (Luxembourg)49.6233336.2044440.177932
10Ramstein Air Base49.4369017.6002800.022154
11Joint Base Andrews (Camp Springs)38.810799−76.8669970.272409
12Hartsfield Jackson Airport (Atlanta)33.636700−84.4281010.047392
13Asheville Regional Airport35.436199−82.5418010.251562
14Bradley International Airport (Hartford)41.938900−72.6831970.156189
15General Edward Logan Airport (Boston)42.364300−71.0052030.253187
16Thurgood Marshall Airport (Baltimore)39.175400−76.6682970.093830
17Ronald Reagan Airport (Washington)38.852100−77.0376970.154835
18Newark Liberty International Airport40.692501−74.1687010.136928
19Spartanburg International Airport (Greenville)34.895699−82.2189030.321778
20Washington Dulles International Airport38.944500−77.4558030.126876
21La Guardia Airport (New York)40.777199−73.8725970.210181
22Dobbins Air Reserve Base (Marietta)33.915401−84.5162960.296766
23Montgomery Regional Airport32.300598−86.3939970.280931
24Mobile Regional Airport30.691200−88.2427980.310154
25Philadelphia International Airport39.871899−75.2410960.261567
26Blacksburg Regional Airport (Roanoke)37.325500−79.9754030.225211
27Sofia Airport42.69669323.4114360.204411
28Nikola Tesla Airport (Belgrade)44.81840120.3090990.245757
29King Khaled International Airport (Riyadh)24.95760046.6987990.135812
30atl33.137551−84.3750000.338159

Appendix E. The 15 Airports Located on the Same Great Circle That Passes through Cape Town and the Maximum Number of Other Airports—Almost-Equal-Sized Cell Quantization

Airport NameLatitudeLongitude Δ γ [ O ]
1Cape Town International Airport−33.96480218.6017000.317152
2Albuquerque International Sunport35.040199−106.6090010.225185
3Fort Worth Alliance Airport32.987598−97.3188020.072202
4Cannon Air Force Base (Clovis)34.382801−103.3219990.143119
5Dallas Love Field (Dallas)32.847099−96.8517990.072541
6Dallas Fort Worth International Airport32.896801−97.0380020.066215
7Hollywood Airport (Fort Lauderdale)26.072599−80.1527020.147474
8Meacham International Airport (Fort Worth)32.819801−97.3623960.098141
9Biloxi International Airport (Gulfport)30.407301−89.0700990.286861
10Metropolitan Oakland International Airport37.721298−122.2210010.268331
11San Francisco International Airport37.618999−122.3750000.155643
12Norman Y. Mineta Airport (San Jose)37.362598−121.9290010.067841
13Sarasota Bradenton International Airport27.395399−82.5543980.029516
14Lynden Pindling Airport (Nassau)25.039000−77.4662020.112437
15Luis Munoz Marin Airport (San Juan)18.439400−66.0018010.061461

Appendix F. The Dependence of the Number of Points Associated with the Great Circle Detected on the Parameter Space Quantization Level

DatasetQuantizationNumber of PointsParameters of the
LevelAssociated with theGreat Circle Detected
(Degrees)Great Circle Detected(Degrees)
Δ θ Δ S φ max θ max
Cities2 ( π / 90 ) 2 1703156.250053
1 ( π / 180 ) 2 1177155.709353.5000
0.5 ( π / 360 ) 2 729156.454453.7500
0.25 ( π / 720 ) 2 425156.393453.625
0.2 ( π / 900 ) 2 359156.430053.7000
0.1 ( π / 1800 ) 2 198155.792053.2500
0.05 ( π / 3600 ) 2 120145.021548.0750
Airports2 ( π / 90 ) 2 78156.250053
1 ( π / 180 ) 2 50157.884054.5000
0.5 ( π / 360 ) 2 30156.454453.7500
0.25 ( π / 720 ) 2 19150.736755.1250
0.166 ( π / 1080 ) 2 15154.391152.2500
0.125 ( π / 1440 ) 2 13155.719853.4375
0.1 ( π / 1800 ) 2 12151.255955.3500
0.05 ( π / 3600 ) 2 10154.840356.1750
Airports through Cape Town2 ( π / 90 ) 2 3949.380539
1 ( π / 180 ) 2 2449.315137.5000
0.5 ( π / 360 ) 2 1549.387837.7500
0.25 ( π / 720 ) 2 1049.072437.8750

References

  1. Fischler, M.A.; Bolles, R.C. Random Sample Consensus: A paradigm for model fitting with applications to image analysis and Automated Cartography. Commun. Assoc. Comput. Mach. ACM 1981, 24, 381–396. [Google Scholar] [CrossRef]
  2. Duda, R.O.; Hart, P.E. Use of the Hough transformation to detect lines and curves in pictures. Commun. Assoc. Comput. Mach. ACM 1972, 15, 11–15. [Google Scholar] [CrossRef]
  3. Kiryati, N.; Bruckstein, A.M. Heteroscedastic Hough Transform (HtHT): An efficient Method for Robust Line Fittingin the ‘Errors in the Variables’ Problem. Comput. Vis. Image Underst. 2000, 78, 69–83. [Google Scholar] [CrossRef]
  4. López-González, G.; Arana-Daniel, N.; Bayro-Corrochano, E. Conformal Hough Transform for 2D and 3D Cloud Points. In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications (CIARP 2013), Lecture Notes in Computer Science; Ruiz-Shulcloper, J., di Baja, G.S., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; Volume 8258. [Google Scholar]
  5. Gerig, G.; Klein, F. Fast contour identification through efficient Hough Transform and simplified interpretation strategy. In Proceedings of the International Conference on Pattern Recognition (ICPR), Paris, France, 27–31 October 1986; pp. 498–500. [Google Scholar]
  6. Gerig, G. Linking image-space and accumulator-space: A new approach for object recognition. In Proceedings of the 1st International Conference on Computer Vision (ICCV), London, UK, 8–14 June 1987; pp. 112–117. [Google Scholar]
  7. Matas, J.; Galambos, C.; Kittler, J. Progressive Probabilistic Hough Transform. In Proceedings of the British Machine Vision Conference (BMVC), Southampton, UK, 14–17 September 1998; pp. 26.1–26.10. [Google Scholar]
  8. Vasseur, P.; Moaddib, E.-M. Central Catadioptric Line Detection. In Proceedings of the British Machine Vision Conference (BMVC), London, UK, 7–9 September 2004. [Google Scholar]
  9. Torii, A.; Imiya, A. The randomized-Hough-transform-based method for great-circle detection on sphere. Pattern Recognit. Lett. 2007, 28, 1186–1192. [Google Scholar] [CrossRef]
  10. Boutteau, R.; Savatier, X.; Bonardi, F.; Ertaud, J.-Y. Road-line detection and 3D reconstruction using fisheye cameras. In Proceedings of the IEEE 16th International Conference on Intelligent Transportation Systems (ITSC), The Hague, The Netherlands, 6–9 October 2013. [Google Scholar]
  11. Barnard, S.T. Interpreting perspective images. Artif. Intell. 1983, 21, 435–462. [Google Scholar] [CrossRef]
  12. Quan, L.; Mohr, R. Determining persepctive structures using hierarchical Hough transform. Pattern Recognit. Lett. 1989, 9, 279–286. [Google Scholar] [CrossRef]
  13. Lutton, E.; Maitre, H.; Lopez-Krahe, J. Contribution to the determination of vanishing points using Hough transform. IEEE Trans. Pattern Anal. Mach. Intell. 1994, 16, 430–438. [Google Scholar] [CrossRef]
  14. Ying, X.; Hu, Z. Catadioptric line features detection using Hough transform. In Proceedings of the 17th International Conference on Pattern Recognition (ICPR), Cambridge, UK, 26 August 2004; Volume 4, pp. 839–842. [Google Scholar]
  15. Ericson, S.; Astrand, B. Row-detection on an agricultural field using omnidirectional camera. In Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Taipei, Taiwan, 18–22 October 2010. [Google Scholar]
  16. Pacey, A.; Macpherson, C.G.; McCaffrey, K.J.W. Linear volcanic segments in the central Sunda Arc, Indonesia, identified using Hough Transform analysis: Implications for arc lithosphere control upon volcano distribution. Earth Planet. Sci. Lett. 2013, 369–370, 24–33. [Google Scholar] [CrossRef] [Green Version]
  17. Andikagumi, H.; Macpherson, C.G.; McCaffrey, K.J.W. Upper plate stress controls the distribution of Mariana arc volcanoes. J. Geophys. Res. Solid Earth 2020, 125, e2019JB017391. [Google Scholar] [CrossRef]
  18. Wessel, P. Hotspotting: Principles and properties of a plate tectonic Hough transform. Geochem. Geophys. Geosyst. 2008, 9, Q08004. [Google Scholar] [CrossRef]
  19. Snyder, J.P. Flattening the Earth: Two Thousand Years of Map Projections; The University of Chicago Press: Chicago, IL, USA, 1993. [Google Scholar]
  20. Klette, R.; Rosenfeld, A. Digital Geometry: Geometric Methods for Digital Picture Analysis; (Section 1.1.4); Elsevier: Amsterdam, The Netherlands, 2004. [Google Scholar]
  21. Koplowitz, J. On the performance of chain codes for quantization of line drawings. IEEE Trans. Pattern Anal. Mach. Intell. PAMI 1981, 3, 181–185. [Google Scholar] [CrossRef] [PubMed]
  22. Kiryati, N.; Lindenbaum, M.; Bruckstein, A.M. Digital or analog Hough transform? Pattern Recognit. Lett. 1991, 12, 291–297. [Google Scholar] [CrossRef] [Green Version]
  23. Santalo, L. Integral Geometry and Geometric Probability. In Encyclopedia of Mathematics and Its Applications; Addison-Wesley: Boston, MA, USA, 1976; Volume 1. [Google Scholar]
  24. World Cities Coordinates Data Set. Available online: https://simplemaps.com/data/world-cities (accessed on 14 October 2019).
  25. Airports Coordinates Data Set. Available online: https://www.partow.net/miscellaneous/airportdatabase/ (accessed on 14 October 2019).
Figure 1. (Left) The angular coordinates θ i and φ i of a point. (Right) The intersection of the sphere with a plane associated with the primary point P is a circle. The intersection of the sphere with each of the associated parallel planes is a different circle with a different radius. For example, the red plane of which the normal direction is determined by point P intersects the sphere at the red circle. The parallel plane that passes through the origin of the sphere is a great circle (green).
Figure 1. (Left) The angular coordinates θ i and φ i of a point. (Right) The intersection of the sphere with a plane associated with the primary point P is a circle. The intersection of the sphere with each of the associated parallel planes is a different circle with a different radius. For example, the red plane of which the normal direction is determined by point P intersects the sphere at the red circle. The parallel plane that passes through the origin of the sphere is a great circle (green).
Jimaging 08 00184 g001
Figure 2. Each primary point (blue point P) defines a primary circle of radius r (blue). Each secondary point, such as the red point S 1 on the primary circle, defines a secondary circle of radius r (red) passing through the primary point.
Figure 2. Each primary point (blue point P) defines a primary circle of radius r (blue). Each secondary point, such as the red point S 1 on the primary circle, defines a secondary circle of radius r (red) passing through the primary point.
Jimaging 08 00184 g002
Figure 3. The red, green, and blue points ( P 1 , P 2 , P 3 ) are primary points located on the same circle (black). Each primary point defines a primary circle. All the primary circles intersect at a secondary point (black point S). That point defines a secondary circle (black) passing through the primary points.
Figure 3. The red, green, and blue points ( P 1 , P 2 , P 3 ) are primary points located on the same circle (black). Each primary point defines a primary circle. All the primary circles intersect at a secondary point (black point S). That point defines a secondary circle (black) passing through the primary points.
Jimaging 08 00184 g003
Figure 4. The relation between d and the circle radius r. P is a primary point on a unit sphere. The blue circle is the primary circle of radius r defined by P. The triangle C F O is right-angled.
Figure 4. The relation between d and the circle radius r. P is a primary point on a unit sphere. The blue circle is the primary circle of radius r defined by P. The triangle C F O is right-angled.
Jimaging 08 00184 g004
Figure 5. The locus of { θ , φ } pairs for selected values of θ i , φ i , and d. (a,b) The case of d = 0 . (a): for two primary points with θ i = 70 ; blue: φ i = 120 , red: φ i = 0 . (b): for three primary points with φ i = 45 ; blue: θ i = 60 , red: θ i = 30 , green: θ i = 150 . (c,d) Same as (a,b) but for d = 0.5 . (e) Illustrating the dependence on r = r ( d ) . Here the primary point is φ i = 180 , θ i = 70 .
Figure 5. The locus of { θ , φ } pairs for selected values of θ i , φ i , and d. (a,b) The case of d = 0 . (a): for two primary points with θ i = 70 ; blue: φ i = 120 , red: φ i = 0 . (b): for three primary points with φ i = 45 ; blue: θ i = 60 , red: θ i = 30 , green: θ i = 150 . (c,d) Same as (a,b) but for d = 0.5 . (e) Illustrating the dependence on r = r ( d ) . Here the primary point is φ i = 180 , θ i = 70 .
Jimaging 08 00184 g005aJimaging 08 00184 g005b
Figure 6. In the case of the great circles, d = 0 , two antipodal spherical points (red), one at each hemisphere, define the same great circle.
Figure 6. In the case of the great circles, d = 0 , two antipodal spherical points (red), one at each hemisphere, define the same great circle.
Jimaging 08 00184 g006
Figure 7. (Left) Uniform rectangular quantization of the parameter plane, i.e., uniform quantization of the angular coordinates θ and φ , corresponds to cells of non-uniform area on the sphere. Cells are small near the poles and large near the equator. (Right) Almost-equal-sized cell quantization.
Figure 7. (Left) Uniform rectangular quantization of the parameter plane, i.e., uniform quantization of the angular coordinates θ and φ , corresponds to cells of non-uniform area on the sphere. Cells are small near the poles and large near the equator. (Right) Almost-equal-sized cell quantization.
Jimaging 08 00184 g007
Figure 8. Incrementing all cells through which the continuous voting curve passes means voting for both the blue and green cells. In contrast, sampling θ and quantizing φ generates the centers of the green cells alone.
Figure 8. Incrementing all cells through which the continuous voting curve passes means voting for both the blue and green cells. In contrast, sampling θ and quantizing φ generates the centers of the green cells alone.
Jimaging 08 00184 g008
Figure 9. At layer θ n we increment the accumulator(s) between A and B inclusively. On the sphere, these points are the intersections of the primary circle with the upper and lower boundaries of the θ n layer. In the respective planar array, the points A and B are the intersections of the voting curve corresponding to the primary circle with the θ n layer. Had the approximation been employed, only the green cell would have been incremented, as its center is the closest (in terms of φ ) to the intersection of the curve with the sampled value of θ .
Figure 9. At layer θ n we increment the accumulator(s) between A and B inclusively. On the sphere, these points are the intersections of the primary circle with the upper and lower boundaries of the θ n layer. In the respective planar array, the points A and B are the intersections of the voting curve corresponding to the primary circle with the θ n layer. Had the approximation been employed, only the green cell would have been incremented, as its center is the closest (in terms of φ ) to the intersection of the curve with the sampled value of θ .
Jimaging 08 00184 g009
Figure 10. A cell centered at ( θ m a x , φ m a x ) . The black circle is the common secondary circle defined by the center of this cell. The four blue circles are the circles defined by the corners of the cell.
Figure 10. A cell centered at ( θ m a x , φ m a x ) . The black circle is the common secondary circle defined by the center of this cell. The four blue circles are the circles defined by the corners of the cell.
Jimaging 08 00184 g010
Figure 11. A secondary circle (black) and a corner circle (blue). The maximum distance of a point on the corner circle to the secondary circle is achieved by the two critical points (red).
Figure 11. A secondary circle (black) and a corner circle (blue). The maximum distance of a point on the corner circle to the secondary circle is achieved by the two critical points (red).
Jimaging 08 00184 g011
Figure 12. (Left) The angle γ between the (red) radius vector pointing at a critical point and its respective closest point on the common secondary circle (black) is equal to the angle between the radius vector (black) corresponding to the secondary point at the center of the cell ( θ m a x , φ m a x ) and the radius vector (blue) associated with a corner point. (Right) The common secondary circle (black) and one of the critical circles (red). The spherical radius vector defined by the angular coordinates ( θ m a x , φ m a x ) of the secondary point passes through the centers of the common secondary circle and the two critical circles, and this radius vector is perpendicular to the planes containing the circles. d and d l o w e r are the distances of the common secondary circle and the (lower) critical circle from the origin of the sphere, respectively.
Figure 12. (Left) The angle γ between the (red) radius vector pointing at a critical point and its respective closest point on the common secondary circle (black) is equal to the angle between the radius vector (black) corresponding to the secondary point at the center of the cell ( θ m a x , φ m a x ) and the radius vector (blue) associated with a corner point. (Right) The common secondary circle (black) and one of the critical circles (red). The spherical radius vector defined by the angular coordinates ( θ m a x , φ m a x ) of the secondary point passes through the centers of the common secondary circle and the two critical circles, and this radius vector is perpendicular to the planes containing the circles. d and d l o w e r are the distances of the common secondary circle and the (lower) critical circle from the origin of the sphere, respectively.
Jimaging 08 00184 g012
Figure 13. (Left) The four critical points (red) closer to the cell center and the (higher) critical circle they define. (Right) The four critical points (red) more distant from the cell center and the (lower) critical circle they define.
Figure 13. (Left) The four critical points (red) closer to the cell center and the (higher) critical circle they define. (Right) The four critical points (red) more distant from the cell center and the (lower) critical circle they define.
Jimaging 08 00184 g013
Figure 14. The primary point P (blue) with the corresponding primary circle (blue), which votes for the cell with the maximum count. The secondary point S on the primary circle and inside the cell defines a secondary circle (green) passing exactly through the primary point P. The primary point P is located within a spherical segment associated with the cell. The black circle is the common secondary circle defined by the center of the cell, and the red circles are the lower and higher critical circles.
Figure 14. The primary point P (blue) with the corresponding primary circle (blue), which votes for the cell with the maximum count. The secondary point S on the primary circle and inside the cell defines a secondary circle (green) passing exactly through the primary point P. The primary point P is located within a spherical segment associated with the cell. The black circle is the common secondary circle defined by the center of the cell, and the red circles are the lower and higher critical circles.
Jimaging 08 00184 g014
Figure 15. Spherical segment defined by the lower and higher critical circles (red). The black circle is the common secondary circle.
Figure 15. Spherical segment defined by the lower and higher critical circles (red). The black circle is the common secondary circle.
Jimaging 08 00184 g015
Figure 16. Two illustrations of the accumulator array M with almost-equal-sized cell quantization. Left: The accumulators tessellating the θ φ plane. Right: Accumulators represented by identical rectangles, where the i axis represents the nearest integer multiple of Δ θ and the j axis represents the nearest integer multiple of Δ φ i .
Figure 16. Two illustrations of the accumulator array M with almost-equal-sized cell quantization. Left: The accumulators tessellating the θ φ plane. Right: Accumulators represented by identical rectangles, where the i axis represents the nearest integer multiple of Δ θ and the j axis represents the nearest integer multiple of Δ φ i .
Jimaging 08 00184 g016
Figure 17. Executing Algorithm 1 on the airport database. (Left) The blue great circle passes through the maximum number of airports (red dots). The red great circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Figure 17. Executing Algorithm 1 on the airport database. (Left) The blue great circle passes through the maximum number of airports (red dots). The red great circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Jimaging 08 00184 g017
Figure 18. Executing Algorithm 1 on the city database. (Left) The blue great circle passes through the maximum number of cities (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Figure 18. Executing Algorithm 1 on the city database. (Left) The blue great circle passes through the maximum number of cities (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Jimaging 08 00184 g018
Figure 19. (Left) Detecting the great circle (blue) passing through Cape Town International Airport and through the maximum number of other airports, using uniform quantization in the plane. The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M along the θ ( φ ) curve corresponding to Cape Town airport, showing the parameters of the two great circles.
Figure 19. (Left) Detecting the great circle (blue) passing through Cape Town International Airport and through the maximum number of other airports, using uniform quantization in the plane. The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M along the θ ( φ ) curve corresponding to Cape Town airport, showing the parameters of the two great circles.
Jimaging 08 00184 g019
Figure 20. Executing Algorithm 3 on the airport database: (Left) The blue great circle passes through the maximum number of airports (red dots). The red great circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Figure 20. Executing Algorithm 3 on the airport database: (Left) The blue great circle passes through the maximum number of airports (red dots). The red great circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Jimaging 08 00184 g020
Figure 21. Executing Algorithm 3 on the city database. (Left) The blue great circle passes through the maximum number of cities (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Figure 21. Executing Algorithm 3 on the city database. (Left) The blue great circle passes through the maximum number of cities (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.
Jimaging 08 00184 g021
Figure 22. (Left) Detecting the great circle (blue) passing through Cape Town International Airport and passing through the maximum number of other airports, using almost-equal-sized cell quantization. The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M along the θ ( φ ) curve corresponding to Cape Town airport, showing the parameters of the two great circles.
Figure 22. (Left) Detecting the great circle (blue) passing through Cape Town International Airport and passing through the maximum number of other airports, using almost-equal-sized cell quantization. The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M along the θ ( φ ) curve corresponding to Cape Town airport, showing the parameters of the two great circles.
Jimaging 08 00184 g022
Figure 23. (Left) Cells corresponding to uniform quantization in the plane; cells close to the equator are larger than cells close to the poles. Corner circles (red) of cells closer to the pole are closer to each other than corner circles of cells closer to the equator. (Right) Almost-equal-sized cell quantization: all cells are of approximately the same size, so the spherical segments between the upper and lower critical circles (blue) cover similar areas.
Figure 23. (Left) Cells corresponding to uniform quantization in the plane; cells close to the equator are larger than cells close to the poles. Corner circles (red) of cells closer to the pole are closer to each other than corner circles of cells closer to the equator. (Right) Almost-equal-sized cell quantization: all cells are of approximately the same size, so the spherical segments between the upper and lower critical circles (blue) cover similar areas.
Jimaging 08 00184 g023
Figure 24. Executing Algorithm 3 with r = 0.25 on the airport database. (Left) The blue circle passes through the maximum number of airports (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Figure 24. Executing Algorithm 3 with r = 0.25 on the airport database. (Left) The blue circle passes through the maximum number of airports (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Jimaging 08 00184 g024
Figure 25. Executing Algorithm 3 with r = 0.5 on the airport database. (Left) The blue circle passes through the maximum number of airports (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Figure 25. Executing Algorithm 3 with r = 0.5 on the airport database. (Left) The blue circle passes through the maximum number of airports (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Jimaging 08 00184 g025
Figure 26. Executing Algorithm 3 with r = 0.125 on the city database. (Left) The blue circle passes through the maximum number (616) of cities (red dots). The black circle, passing through 386 cities, corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Figure 26. Executing Algorithm 3 with r = 0.125 on the city database. (Left) The blue circle passes through the maximum number (616) of cities (red dots). The black circle, passing through 386 cities, corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Jimaging 08 00184 g026
Figure 27. Executing Algorithm 3 with r = 0.5 on the city database. (Left) The blue circle passes through the maximum number (568) of cities (red dots). The red circle, passing through 523 cities, corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Figure 27. Executing Algorithm 3 with r = 0.5 on the city database. (Left) The blue circle passes through the maximum number (568) of cities (red dots). The red circle, passing through 523 cities, corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.
Jimaging 08 00184 g027
Table 1. Total computing time and computing time per-point (msec) using Matlab on a low-end PC. Results are reported for great-circle detection ( r = 1 ) and small-circle detection ( r < 1 ) and for different parameter-space resolution values ( Δ θ and Δ φ for Algorithm 1, Δ θ and Δ S for Algorithm 3).
Table 1. Total computing time and computing time per-point (msec) using Matlab on a low-end PC. Results are reported for great-circle detection ( r = 1 ) and small-circle detection ( r < 1 ) and for different parameter-space resolution values ( Δ θ and Δ φ for Algorithm 1, Δ θ and Δ S for Algorithm 3).
DatasetAlgorithm 1Algorithm 3
ΔθΔφComputing
Time (ms)
ΔθΔSComputing
Time (ms)
Total
Time
Avg. per
Point
Total
Time
Avg. per
Point
Airports223660.432 ( π 90 ) 2 5950.93
r = 1 115310.711 ( π 180 ) 2 7911.33
0.50.512981.980.5 ( π 360 ) 2 17773.02
(616 pts.)0.250.2533215.160.25 ( π 720 ) 2 36685.96
Cities2236440.292 ( π 90 ) 2 67550.53
r = 1 1161740.471 ( π 180 ) 2 10,2250.75
0.50.522,7791.640.5 ( π 360 ) 2 26,2312.07
(12,959 pts.)0.250.2564,3855.020.25 ( π 720 ) 2 72,0615.56
Cities----2 ( π 90 ) 2 59720.48
r = 0.5 ----1 ( π 180 ) 2 83430.70
----0.5 ( π 360 ) 2 23,4031.98
(12,959 pts.)----0.25 ( π 720 ) 2 64,0784.97
Cities----2 ( π 90 ) 2 55620.43
r = 0.125 ----1 ( π 180 ) 2 76300.57
----0.5 ( π 360 ) 2 22,4231.71
(12,959 pts.)----0.25 ( π 720 ) 2 58,8054.53
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Ibrahim, B.; Kiryati, N. Detecting Cocircular Subsets of a Spherical Set of Points. J. Imaging 2022, 8, 184. https://doi.org/10.3390/jimaging8070184

AMA Style

Ibrahim B, Kiryati N. Detecting Cocircular Subsets of a Spherical Set of Points. Journal of Imaging. 2022; 8(7):184. https://doi.org/10.3390/jimaging8070184

Chicago/Turabian Style

Ibrahim, Basel, and Nahum Kiryati. 2022. "Detecting Cocircular Subsets of a Spherical Set of Points" Journal of Imaging 8, no. 7: 184. https://doi.org/10.3390/jimaging8070184

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop