The complete source-code of ARDECO and a compiled version for Windows are available as a plug-in for our Graphite software, see the Graphite page.
Some of the most important parts of the implementation are also explained here. Implementing ARDECO requires two subtle pieces of software:
- a Delaunay triangulation. Readily available software exists (see e.g. CGAL or Jonathan Shewchuck's triangle).
- a generic rasterizer, used in different places in the Ardeco algorithm:
- in the trixels construction phase (to compute weighted barycenters in the saliency map)
- in the pre-integration phase (to compute pre-integrated covariance matrices over the trixels)
This source code is licensed under the GNU GPL.
|types.h||Basic typedefs, useful inline functions.|
| Point and vectors in 2d (Vec2) + operators, |
Polygons in 2d, Sutherland-Hogdman re-entrant clipping.
|median.h||Computes the median of a set of (weight,value) pairs|
|matrix.h||Matrix class and utilities|
|Image, memory management, RGB output.|
|M estimators (L1L2, Lp, fait, Huber, Cauchy, Geman-McClure, Welsh, Tuckey)|
|bivariate.h||Bivariate functions (degree 1 to 3), and generic M-estimator fitting code|
|rasterizer.h||The generic exact rasterizer|
|integral.h|| Instanciations of the rasterizer:
|test.cpp||a simple example of using the generic rasterizer to draw antialiased polygons in an image|