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. |
|
geometry.h geometry.cpp |
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.h image.cpp | Image, memory management, RGB output. |
|
m_estimator.h m_estimator.cpp | 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 |