Proyecto en SourceForge

24 de December, 2006

Bueno, pues ya está creado el proyecto en SourceForge.net, subido el código fuente y creada la página web.

Publicado el código fuente

24 de December, 2006
Está publicada la primera versión del código fuente del programa. La versión final implementará los siguientes algoritmos (están tachados los que todavía no están implementados):
  • Recuento y etiquetado de componentes.
  • Búsqueda de bordes.
  • MAT (Medial Axis Transformation): d8-MAT y d4-MAT.
  • MA (Medial Axis).
  • Reducción 2-dimensional de imágenes con preservación de la topología:
    • Puntos simples en imágenes 2-dimensionales.
    • Eliminación secuencial de puntos simples.
    • Eliminación en paralelo de puntos simples:
      • Eliminación de puntos simples frontera.
      • Algoritmo RH (para (8,4)-imágenes digitales).
      • Algoritmos de adelgazamiento subiterativos:
        • Algoritmo GH89-A1 (para (8,4)-imágenes digitales).
        • Algoritmo TSIN (para (8,4)-imágenes digitales)
      • Algoritmos de adelgazamiento con alternancia en campos:
        • Algoritmo GH89-A2 (para (8,4)-imágenes digitales).

Página del proyecto: http://sourceforge.net/projects/top-digital

Todavía no está la versión definitiva, pero está finalizado al 80% aproximadamente. Está implementado en C++ usando exclusivamente la librería de plantillas estándar (Standard Template Library) y la librería Boost (Boost C++ Libraries) con lo que es multiplataforma, aunque sólo está probado bajo Windows (con Microsoft Visual C++ Express) y Mac OS X (con XCode 2.0). El código fuente incluye los ficheros de proyecto para los dos entornos de desarrollo indicados.

También está disponible la documentación del proyecto, generada con Doxygen:

Released 1.0 version

20 de January, 2007

Well, the code is finished and the algorithms are working. This is what the program can do:

  • Counting and labelling of black connected components.
  • Search of edges.
  • Medial Axis Transformation.
  • MA
  • Reduction of 2-dimensional images with preservation of the topology.
    • Simple points in 2-dimensional images.
    • Sequential shrink of 2-dimensional images.
    • Parallel shrink of 2-dimensional images.
      • Border simple points.
      • RH algorithm for (8,4)-images.
      • ROS algorithm for (8,4)-images.
      • Subiterative algorithms:
        • GH89-A1 algorithm for (8,4)-images.
        • TSIN algorithm for (8,4)-images.
      • Fields alternance algorithms:
        • GH89-A2 algorithm for (8,4)-images.

The following algorithms are still in development:

  • Rebuild from MA: rebuilds the original image from the data extracted from the MA algorithm. It is included but cuts the resulting image (bug?).
  • Parallel shrink of 2-dimensional images: crashes when using an image that has less than 4 rows.

I will not continue working on it until February 15th (I have examinations at the university).

Started coding of 2.0 version

15 de June, 2007

Hello,

I have started today the coding of the 2.0 version of the project.

Now it is going to be a library and I’m doing deep changes in the design:

  • Image: will be a class with the only purpose of storing digital images to which apply topological algorithms. It will only store topological information about points (no colour information except whether it is black or white, for example).
  • Algorithm: base class for algorithms that can be applied to an Image object. I want to do this because I think it’s better to have logic of algorithms outside image class, so adding new algorithms will not cause in modifications of Image class.
  • Operations program: it will do the rest of the current features: read a file with algorithms to apply to the image and create the corresponding Algorithm objects and apply them to the image to see results.

With this new design it will be easy to add a graphical interface to see results of the algorithms, but not only final results (Algorithm is going to have step() functions which will allow to run an algorithm step by step seen partial results).

You can see changes in the subversion repository (reorganization branch) as I code them but it will be still available the actual version of the code (trunk in SVN) which corresponds to 1.0.1 version.

Thanks for reading :D