<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/technology/cnxml/schema/dtd/0.5/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" xmlns:m="http://www.w3.org/1998/Math/MathML" id="new">
  <name>Delaunay Triangulation for Image Processing</name>
  <metadata>
  <md:version>1.2</md:version>
  <md:created>2006/12/19 21:28:46 US/Central</md:created>
  <md:revised>2006/12/21 22:41:02.984 US/Central</md:revised>
  <md:authorlist>
      <md:author id="jgillenw">
      <md:firstname>Jennifer</md:firstname>
      <md:othername>Ann</md:othername>
      <md:surname>Gillenwater</md:surname>
      <md:email>jgillenw@rice.edu</md:email>
    </md:author>
      <md:author id="jryans">
      <md:firstname>J.</md:firstname>
      <md:othername>Ryan</md:othername>
      <md:surname>Stinnett</md:surname>
      <md:email>jryans@rice.edu</md:email>
    </md:author>
      <md:author id="elicas">
      <md:firstname>Elica</md:firstname>
      
      <md:surname>Skorcheva</md:surname>
      <md:email>elicas@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="jgillenw">
      <md:firstname>Jennifer</md:firstname>
      <md:othername>Ann</md:othername>
      <md:surname>Gillenwater</md:surname>
      <md:email>jgillenw@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="jryans">
      <md:firstname>J.</md:firstname>
      <md:othername>Ryan</md:othername>
      <md:surname>Stinnett</md:surname>
      <md:email>jryans@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="elicas">
      <md:firstname>Elica</md:firstname>
      
      <md:surname>Skorcheva</md:surname>
      <md:email>elicas@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="richb">
      <md:firstname>Richard</md:firstname>
      <md:othername>G.</md:othername>
      <md:surname>Baraniuk</md:surname>
      <md:email>richb@rice.edu</md:email>
    </md:maintainer>
    <md:maintainer id="Markpanzee">
      <md:firstname>Mark</md:firstname>
      <md:othername>A.</md:othername>
      <md:surname>Davenport</md:surname>
      <md:email>md@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>Delaunay</md:keyword>
    <md:keyword>image</md:keyword>
    <md:keyword>interpolation</md:keyword>
    <md:keyword>triangulation</md:keyword>
  </md:keywordlist>

  <md:abstract>Triangulation is a tool that divide a surface into regions with certain common characteristics.  The type of these characteristics depends on the type of triangulation.  Delaunay triangulation can divide a surface into regions that are particularly well-suited for image processing applicaions.</md:abstract>
</metadata>
  <content>
    <para id="element-597">Because of the inherent geometric qualities of image subjects, it is desirable that any algorithm for dividing an image into a set of regions should be able to model a wide variety of geometries.  Triangles are the simplest building block for such models.  As such, it is appropriate to use a triangulation to break down or build up an image.</para><para id="delete_me">Triangulation divides a surface into a set of triangles, with each triangle edge entirely shared by two triangles.  Given a set of points P, the Delaunay triangulation of this set ensures that no point is in the circumcircle of any triangle formed.</para><figure id="element-592"><name>Circumcircle</name>
  <media type="image/bmp" src="circumcircle.bmp"/>
  <caption>The circumcircle of a triangle is the circle that passes through all of the triangle’s vertices (A, B, C).</caption></figure><para id="element-332">There are several methods for accomplishing this, such as incremental, divide and conquer, and sweepline.  All of these can achieve O(nlogn) run time, where n is the number of points in P.  The Delaunay triangulation for a set of points P(X,Y) can easily be accomplished in MATLAB via the command delaunay(X,Y).</para><para id="element-315">The advantage of using Delaunay triangulation over other types is that it maximizes the minimum angles of the triangles.  In this way, the triangles tend toward equiangularity, which avoids having triangles that are very long and thin.  Therefore, the resulting triangulation looks geometrically balanced.  Aside from equiangularity, Delaunay triangulation is particularly non-restrictive.  Thus, it is ideal for interpolation algorithms, which attempt to avoid introducing distortions.  (Other methods of triangulating might force unusual constraints on the triangle patches, which could result in really weird shapes on the surface.  This would distort the pixel values of the final image, since pixel values over a region are directly related to the triangle that covers that region.)</para><para id="element-207">The geometric versatility of triangulation as a tool for breaking down and building up images, combined with the particular geometric advantages of the Delaunay version in the interpolation realm, make Delaunay triangulation an ideal component of pixel interpolation algorithms.</para>   
  </content>
  
</document>
