<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Automation Methods for Processing Medical Images Based on the Application of Grids</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Donbass State Engineering Academy</institution>
          ,
          <addr-line>Akademichna str.,72, Kramatorsk, 84313</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The problem of reducing the complexity of the process of automated recognition and obtaining a quantitative assessment of the graphic objects parameters in medical images are considered. A method for applying a grid to an image is proposed. It makes possible to provide acceptable accuracy of calculations, a high level of generalization of data, as well as reduce the complexity of calculations. The software that implements the proposed methods is developed. The developed software is used in the analysis of metallographic images of materials for medical application.</p>
      </abstract>
      <kwd-group>
        <kwd>microstructure</kwd>
        <kwd>image</kwd>
        <kwd>processing automation</kwd>
        <kwd>cluster</kwd>
        <kwd>recognition</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Many devices for determining the medical parameters of a person represent
information in graphical form. In particular, these are the results of studies using microscopes,
the results of X-ray analysis, MRI, ultrasound, etc. In addition, medical instruments,
implants, materials have a certain internal structure and surface structure, which must
be controlled. Quality control in medicine plays an important role in ensuring the
reliability of manufacturing prostheses, implants, medical instruments. Therefore, to
obtain objective quantitative data in the processing of any information presented in
graphical form, automation of image processing is required. Determining the
quantitative characteristics of image elements is necessary for quick and correct interpretation
of results. However, processing and analysis of medical, metallographic images is a
very nontrivial task due to the complex shape and mutual arrangement of the
elements, as well as the quality of the images provided by modern equipment.</p>
      <p>
        Currently, effective methods of digital image processing have been developed [
        <xref ref-type="bibr" rid="ref1 ref2">1,
2</xref>
        ], including for the analysis of microstructures, surface coatings of products [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], etc.
The complete process of image processing in analyzing the results of medical
diagnostics and quality control of products is a complex multi-step time-consuming
procedure and includes a number of basic steps: pre-processing and image restoration,
segmentation, filtering, normalization of selected objects, recognition and, often,
comparison with reference objects. Multistep is due to the fact that various processing
tasks are closely related and are performed sequentially, therefore the quality of the
solution of one of them affects the choice of the method of solving the other problems
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Automation of image processing is the main problem in obtaining quantitative
information about the results of the study.
      </p>
      <p>The aim of the study is to reduce the complexity of the process of automated
recognition and obtaining a quantitative assessment of the parameters of graphic objects
in medical images.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Problem statement</title>
      <p>To implement automated image processing for medical purposes, it is necessary to
solve the following tasks:
─ the analysis of methods, models and information technologies for recognition of
graphic objects in images, microstructures of implants and instruments;
─ the development of a method for reducing the amount of information analyzed
through the use of a specified dimensions grid, which is superimposed on the
image;
─ the development of an algorithm for recognizing objects in an image using
software implementation for automating successive stages of recognizing objects in an
image, including clustering methods, binarization methods, building concave
contours, and applying these methods to processing medical images;
─ the experimental obtaining of quantitative characteristics of recognized images
and their elements on the basis of the developed methods, algorithms and software.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Literature review</title>
      <p>Currently, the development of computing technology has significantly increased the
resolution of microscopes, in addition, it has become possible to share a microscope
with a computer, so it is possible to create software systems for analyzing and
processing metallographic images. To obtain image characteristics by means of modern
information technologies, a number of algorithms are used, which can be divided into
three categories: algorithms based on comparison with templates; algorithms that use
the methods of decision-making theory; algorithms using neural networks, etc. Each
of these groups of algorithms has its own strengths and weaknesses, different areas of
application. Methods using patterns are inflexible, but because of their simplicity and
low resource intensity, they often are used in solving particular recognition problems.
The method of neural networks, which uses the principles of artificial intelligence, is
more versatile, but requires a significant amount of input data and computational
resources necessary for the organization of the learning process; its disadvantage is poor
predictability of recognition results. Algorithms based on methods of decision theory,
make the learning process simple and provide an opportunity to achieve a high degree
of predictability of recognition results.</p>
      <p>
        Among the existing solutions in the field of analysis and processing of
metallographic images are the following specialized software systems. Image Expert Pro 3
allows you to get a wide range of geometrical parameters of the elements of the
microstructure. The resulting characteristics are available both for each type of
microparticles separately, and in the form of their statistical sampling [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The Fuzzy
Clustering and Data Analysis Toolbox is a Matlab-based software package that
includes three main categories of functions: clustering algorithms (K-means, K-medoid,
FCMclust, GKclust and GGclust), analysis functions (Dunn, Alternative Dunn, Xie
and Beni's, Partition Index), as well as data visualization functions (Sammon’s
method) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Altami Studio allows real-time image capture from various devices
(microscope or camera), has the ability to pre-process bitmap images (rotate, crop,
change brightness, gamma, contrast). Altami Studio provides the ability to generate
analysis reports in a user-friendly format [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The authors have developed algorithmic
software for a specialized software package that implements the use of clustering
methods for processing metallographic images [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        It should be noted that there is no universal mathematical apparatus that allows you
to create a common formalized approach to the construction of systems for analyzing
metallographic images. Therefore, a systematic approach is needed to solve practical
problems of image processing, and the development of interactive tools to automate
the process of obtaining quantitative information in metallographic studies. Existing
software systems for solving problems of processing and analysis of metallographic
images use various methods of cluster analysis. The principle of the K-means method
is to build k clusters located at the greatest distances from each other. The number of
required clusters is specified manually by the user [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The EM algorithm searches for
clusters based on hidden characteristics that the algorithm determines based on known
data about each object. The main disadvantage of the algorithm can be called
probable quasi-optimal solutions for its work [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The C-means method is a modification
of K-means, but taking into account fuzzy clustering, i.e. objects are not strictly
belong to any cluster, but have a certain value of belonging to each cluster [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
Kohonen neural networks are a two-layer neural network in which the neurons of the
output layer are cluster elements corresponding to the number of clusters into which the
given objects are divided. One of the drawbacks of the method is the need to pre-tune
and train the neural network [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>The method of "overlaying the grid" in image processing</title>
      <p>
        To solve the set tasks, the authors analyzed the characteristics of metallographic
images, identified the problems of their processing during process automation,
associated with the need to analyze a large number of pixels in the presence of actual and
process noise in the images. The authors propose a method and an algorithm for
extracting image regions using cluster analysis [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and grids, which will make it
possible to abandon the processing of each image pixel.
      </p>
      <p>Image analysis showed the redundancy of information on the image associated, for
example, with the presence of the background on which the structure elements are
located. The essence of the proposal is to reduce the amount of information analyzed,
to use a grid of specified dimensions, which is superimposed on the image, and to
analyze the image directly by grid pixels. The grid is built on the basis of the grid
dimension entered by the user, which can be changed to ensure the best fit to the size
of the elements selected in the image. Thus, the accuracy of determining the size of
objects is regulated.</p>
      <p>The next processing step is the selection of the desired points (pixels) in the image
using a binarization algorithm. The binarization method implemented in this paper
consists in comparing pixels in the RGB color model. Each pixel of the grid and the
corresponding pixel on the image with a user-specified tolerance are compared. As a
result of binarization, selected image pixels are obtained for further analysis.</p>
      <p>Pseudocode of the proposed algorithm:
if (grid.R &gt;= image.R – sens &amp;&amp; grid.R &lt;= image.R + sens)
if (grid.R &gt;= image.R – sens &amp;&amp; grid.R &lt;= image.R + sens)
if (grid.R &gt;= image.R – sens &amp;&amp; grid.R &lt;= image.R + sens)
return true;
where grid.R, grid.G, grid.B – a specified color in RGB format, image.R, image.G,
image.B – RGB image color, sens – tolerance color parameters.</p>
      <p>
        The algorithm was tested on a set of test color and grayscale images. To illustrate
the operation, the result of the image binarization of the submicrocrystalline titanium
BT 1-0 structure, obtained using transmission electron microscopy [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and a color
image obtained using an optical microscope is shown in Fig. 1. The search was
performed according to the color of the object and the background color, with the use
of the different grids sizes. An HSL color scheme has been added to analyze the
image in grayscale. Each pixel was converted to HSL using standard formulas. Image
analysis was performed within the grid.
      </p>
      <p>The results of the algorithm are obtained in the form of data arrays:</p>
      <p>Ok  {xi , yi , Ri , Gi , Bi , H i , Si , Li , i  1,2,3,...}k , k  1,2,3,... ,
where k – the number of separate objects in the image; xi , yi – screen coordinates of
the grid pixel; Ri , Gi , Bi , H i , Si , L – RGB and HSL data for this pixel.</p>
      <p>A simple contour can be constructed by connecting the “extreme” points of the
grid superimposed on an object with the help of line segments. Analysis of the results
of applying the algorithm on a set of test images showed that the amount of
information processed is reduced by 4 – 25 times. This depends on the parameters of the
elements in the image under study.</p>
      <p>An important problem is the study of the effect of grid size on the quality of image
processing and the exclusion of small elements of the original image. It is proposed to
take the initial grid cell size no more than dx / 5  d y / 5 , where dx , d y – the
dimensions of the minimum picture element along the respective axes are. At this stage of
work, the user for the whole image sets the grid size. The planned direction of the
improvement of the algorithm is the splitting of the original image into separate
zones.
Fig. 1. Selection of areas on the image using the “grid overlay” method with search by object
color (a) and background color (b)</p>
      <p>The resulting image points on the grid were used for the subsequent
clustering algorithm. The algorithm was developed on the basis of the following
requirements: the method should automatically determine the number of clusters based on
the data provided; each analysis method must give the same result with the same input
data. To find the clusters, you need to specify the value of the Euclidean distance
(dist ) between the points inside the cluster. In this way, we can isolate the desired
regions with different values of dist to control the results of cluster allocation. The
use of the grid in the considered algorithm allows us to significantly speed up the
process of extracting the desired image elements.</p>
      <p>The next task of analyzing the selected image elements associated with obtaining
quantitative characteristics is to determine their orientation relative to the horizontal
axis. To do this, build a segment, the extreme points of which will be the most distant
grid points p1, p2 in the cluster, then the angle of the selected image areas is
determined. To determine the length, the square of the Euclidean distance
d 2  (x.p2  x.p1)2  ( y.p2  y.p1)2 is used, which optimizes the execution time of the
analysis. The result of applying the algorithm analyzing the test image is shown in
Fig. 2.</p>
      <p>
        The next step to identify the elements in the image is to find the contour of each
selected separate area. The problem of finding the convex contour of a set of points is
well known and studied in detail. To solve it, there are many algorithms with different
efficiency. The quick hull algorithm uses the idea of quick sort. The complexity of
this algorithm in the average case is O( N  log( N )) , where n is the number of
starting points [
        <xref ref-type="bibr" rid="ref15 ref16">15, 16</xref>
        ]. Another well-known algorithm is Graham's three-step algorithm
[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In the case of its implementation using quick sort, we obtain the total complexity
of the algorithm O(N  log(N )) . This also applies to the multi-step Jarvis algorithm
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The Divide-and-Conquer algorithm is a popular method for solving problems in
computer science, it consists in dividing a problem into several parts, recursively
looking for solutions in each of them and further integrating solutions to these
problems into a common, complex solution. The obvious advantage of this approach is the
possibility of paralleling the search for solutions to each individual task. A feature of
the algorithm is that the algorithm for constructing contours itself can be performed
using other, more optimal algorithms, with small volumes of initial points [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        To solve the problem, an algorithm for constructing a concave contour was used.
The idea of the algorithm is to first calculate the convex contour using any known
algorithm, and then turn the convex contour into a concave [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The requirements for
the algorithm are as follows: the algorithm must be stable; should be able to handle
any set of points in size; the method should ensure the continuity of the contours, the
absence of intersections between the contours and ensure that all points of the cluster
fall into the selected contour. The speed of the algorithm of this part of the overall
process is less important, given the basic tasks. In addition, from the user's point of
view, the algorithm should be easy to use, allow control of the image processing
process, the user is not required to enter a large number of additional parameters.
A concave contour of a set of points can be defined as a shape that minimizes the area
of a figure bounded by a contour, but allows any angle between adjacent edges of the
contour.
Fig. 2. Determination of clusters and the angle of inclination of the cluster to the horizontal axis
at dist  70 (a), dist  10 ( b), dist  2 (c)
In most cases, there is no need to find the minimum area, as this can distort the figure.
In our implementation of the concave contour method, we need a contour that defines
and describes the general shape of a set of points. It is necessary that the contour is
sufficiently smooth and show as much detail as possible.
      </p>
      <p>The developed algorithm for calculating the concave contour first calculates the
convex contour. The algorithm used in this case for calculating convex contours is the
Divide and Conquer algorithm. Then the convex contour opens iteratively to create a
concave contour. The first step of the concave contour construction algorithm is to
add all the edges of the convex contour to the list, where they are sorted by length.
Then the longest edge in the list is selected and removed.</p>
      <p>The next step is to search through all the points that are most suitable for choosing
the best candidate for adding a new part of the contour between the endpoints of the
remote edge. The search criteria for points is that the largest angle from the new point
to the end points of the old contour must be less than the cosine of the user-entered
angle between the new edges (concavity coefficient K). This ensures that the point is
not outside the contour. After each iteration, a check is made to see if the new edges
of the contour intersect with the existing edges.</p>
      <p>In the case of K = 1, we obtain an actually convex contour, the constant K = 0
gives a concave smooth contour, and the constant K = -1 gives a broken concave
contour (Fig. 3). The ability to select the angle between new edges and a
regiondefined grid size to search for new points is an opportunity for the user to balance
between a smoother or sharper contour.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>The analysis of the possibilities and shortcomings of existing medical image
processing methods showed that in order to reduce the complexity of processing, it is
necessary to automate the entire sequence of analysis steps with expanding the process
control capabilities at each stage and using methods to reduce the amount of
information processed.</p>
      <p>An algorithm for identifying image element search areas and an algorithm for
forming the boundaries of found clusters with concave sections with simultaneous
application of the grid overlay method to reduce the amount of information processed
was proposed and implemented.</p>
      <p>The object-oriented software that automates the stages of image processing is
developed. The final result of the analysis is the areas highlighted in the image with
concave contours and certain quantitative characteristics of their form.</p>
      <p>The application of the grid overlay method made it possible to abandon the
processing of each pixel of the image and reduce the processing time of the original data.
The analysis of the results of the algorithm on the test image of the
submicrocrystalline structure of titanium BT 1-0 showed that, depending on the problem being
solved, it is possible to reduce the amount of information processed by 4-25 times.
Fig. 3. Examples of the construction of a convex contour (a), a smooth concave contour (b), a
broken concave contour (c)</p>
      <p>The prospects for further research are to test the proposed methods and algorithms
on a wider set of applied problems, to study the dependence of the accuracy of
working methods on the type of image.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Gonzalez</surname>
            , Rafael C., and
            <given-names>Richard E.</given-names>
          </string-name>
          <string-name>
            <surname>Woods</surname>
          </string-name>
          .
          <article-title>"Digital image processing</article-title>
          .
          <source>"</source>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Pratt</surname>
            ,
            <given-names>W. K.</given-names>
          </string-name>
          <article-title>Introduction to digital image processing</article-title>
          . CRC Press.
          <article-title>(</article-title>
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Panteleev</surname>
            ,
            <given-names>V. G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egorova</surname>
            ,
            <given-names>O. V.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Klykova</surname>
            ,
            <given-names>E. I.</given-names>
          </string-name>
          , (
          <year>2005</year>
          ), Computer microscopy, [Komp'juternaja mikroskopija], Technosphere, Moscow.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Jaroslavskij</surname>
            ,
            <given-names>L. P.</given-names>
          </string-name>
          , (
          <year>1987</year>
          ),
          <article-title>Digital signal processing in optics and holography: introduction to digital optics, [Cifrovaja obrabotka signalov v optike i golografii: vvedenie v cifrovuju optiku]</article-title>
          ,
          <source>Radio i svjaz'</source>
          , Moscow, 296 p.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>5. NEXSYS ImageExpert Pro 3</article-title>
          . http://www.nexsys.ru/nexsys_iepro3x.htm.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Balasko</surname>
            , Balazs,
            <given-names>Janos</given-names>
          </string-name>
          <string-name>
            <surname>Abonyi</surname>
            , and
            <given-names>Balazs</given-names>
          </string-name>
          <string-name>
            <surname>Feil</surname>
          </string-name>
          .
          <article-title>"Fuzzy clustering and data analysis toolbox." Department of Process Engineering</article-title>
          , University of Veszprem, Veszprem (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Altami</given-names>
            <surname>Studio</surname>
          </string-name>
          . http://alelso.ru/projects/altami-studio/.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Vasilyeva</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tarasov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Getman</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          (
          <year>2016</year>
          ), “
          <article-title>Development of algorithmic support and model of the software complex of image processing”, [Razrabotka algoritmicheskogo obespechenija i modeli programmnogo kompleksa obrabotki izobrazhenij]</article-title>
          ,
          <source>Proceedings of the tenth international scientific-practical conference «Internet-Education-Science» (IES2016)</source>
          , Vinnytsia, pp.
          <fpage>214</fpage>
          -
          <lpage>215</lpage>
          , available at: http://ir.lib.vntu.edu.ua/handle/123456789 /13371
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Fasulo</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          (
          <year>1999</year>
          ).
          <article-title>An analysis of recent work on clustering algorithms</article-title>
          (No.
          <fpage>01</fpage>
          -
          <lpage>03</lpage>
          , p.
          <fpage>02</fpage>
          ).
          <source>Technical report.</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Oreshkov</surname>
          </string-name>
          . V. (
          <year>2012</year>
          ).
          <article-title>EM-masshtabiruyemyy algoritm klasterizatsii</article-title>
          . https://basegroup.ru/community/articles/em.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Leonenkov</surname>
            ,
            <given-names>A.V.</given-names>
          </string-name>
          (
          <year>2003</year>
          ),
          <article-title>Fuzzy modeling in the MATLAB and fuzzyTECH environment [Nechetkoe modelirovanie v srede MATLAB i fuzzyTECH]</article-title>
          ,
          <string-name>
            <surname>BHV-Peterburg</surname>
          </string-name>
          , Peterburg, p.
          <fpage>385</fpage>
          -
          <lpage>388</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Friedman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hastie</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Tibshirani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>2001</year>
          ).
          <article-title>The elements of statistical learning</article-title>
          (Vol.
          <volume>1</volume>
          , No.
          <volume>10</volume>
          ). New York: Springer series in statistics.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Tarasov</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vasilyeva</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Efremov</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2017</year>
          ).
          <article-title>Automation of processing of microstructures of metals based on contour and texture analysis of images. Naukovi Praci Donec'kogo Nacional'nogo Tehnicnogo Universitetu</article-title>
          . Seria, Informatika,
          <source>Kibernetika i Obcisluval'na Tehnika</source>
          ,
          <volume>2</volume>
          (
          <issue>25</issue>
          ),
          <fpage>109</fpage>
          -
          <lpage>117</lpage>
          . doi:
          <volume>10</volume>
          .31474/1996-1588-2017-2-
          <fpage>25</fpage>
          -109-117
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Tarasov</surname>
            <given-names>A.F.</given-names>
          </string-name>
          et al (
          <year>2015</year>
          ).
          <article-title>Osobennosti ispolzovaniya protsessa reversivnogo sdviga dlya polucheniya submiktrokristallicheskikh obyemnykh zagotovok [Features of using the reverse shift process for obtaining submicrocrystalline bulk billets]</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Barber</surname>
            ,
            <given-names>C. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dobkin</surname>
            ,
            <given-names>D. P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dobkin</surname>
            ,
            <given-names>D. P.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Huhdanpaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          (
          <year>1996</year>
          ).
          <article-title>The quickhull algorithm for convex hulls</article-title>
          .
          <source>ACM Transactions on Mathematical Software (TOMS)</source>
          ,
          <volume>22</volume>
          (
          <issue>4</issue>
          ),
          <fpage>469</fpage>
          -
          <lpage>483</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Wenger</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          (
          <year>1997</year>
          ).
          <article-title>Randomized quickhull</article-title>
          .
          <source>Algorithmica</source>
          ,
          <volume>17</volume>
          (
          <issue>3</issue>
          ),
          <fpage>322</fpage>
          -
          <lpage>329</lpage>
          . https://doi.org/10.1007/BF02523195
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. The Graham Scan, Convex Hull Algorithm. http://www.algomation.com/algorithm/graham-scan
          <article-title>-convex-hull.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Jarvis</surname>
            ,
            <given-names>R. A.</given-names>
          </string-name>
          (
          <year>1973</year>
          ).
          <article-title>On the identification of the convex hull of a finite set of points in the plane</article-title>
          .
          <source>Information processing letters</source>
          ,
          <volume>2</volume>
          (
          <issue>1</issue>
          ),
          <fpage>18</fpage>
          -
          <lpage>21</lpage>
          . https://doi.org/10.1016/
          <fpage>0020</fpage>
          -
          <lpage>0190</lpage>
          (
          <issue>73</issue>
          )
          <fpage>90020</fpage>
          -
          <lpage>3</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Bentley</surname>
            ,
            <given-names>J. L.</given-names>
          </string-name>
          (
          <year>1980</year>
          ).
          <article-title>Multidimensional divide-and-conquer</article-title>
          .
          <source>Communications of the ACM</source>
          ,
          <volume>23</volume>
          (
          <issue>4</issue>
          ),
          <fpage>214</fpage>
          -
          <lpage>229</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>D.T.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>Schachter</surname>
            ,
            <given-names>B.J</given-names>
          </string-name>
          .
          <source>International Journal of Computer and Information Sciences</source>
          (
          <year>1980</year>
          )
          <volume>9</volume>
          :
          <fpage>219</fpage>
          . https://doi.org/10.1007/BF00977785
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>