The main class of GIRL is toger, for topological/geometrical representation. With this representation, it is possible to execute efficiantly several operations:

  • side effects functions: to split or merge regions
  • topological functions: get the neighbourhood of a region, get region inside an other region, ...
  • geometrical functions: get the domain of a region (its pixels), all its boundaries (both outer and inner), ... It is also possible to get the region corresponding to a given pixel.
  • topological marking functions: to mark boundaries of regions and thus exclude them from side ffects functions or topological interrogation results.

GIRL is implemented in C++.

We have developped several C++ libraries on top of GIRL : girlTools, euclideanPath, and ise.

  • girlTools is a set of basic classes and functions that provide basic functionnalities on a toger, such as load/save operations, or region perimeter/area computation.
  • euclideanPath implements euclidean paths presented in the paper Euclidean paths : a new representation of boundary of discrete regions by Braquelaire and Vialard. It provides a way to approximate the real boundary underlying the discrete boundary of a region.
  • ise ise a set of segmentation algorithm.
On top of these libraries, we developped a graphical front end that allows to segmente images : qise.
qise uses Qt and OpenGL.

The following picture describes the hierarchy of our libraries and program:

librairies hierarchy

All libraries girl, girlTools, euclideanPath, and ise are distributed under GNU LGPL (version 2.1)
qise is distributed under the GNU GPL (version 2).