Skip to content

VoronoiSkeleton is a C++ class made for the fast computing of Voronoi diagrams of monochrome images. It contains different implementations of thinning algorithms.

License

Notifications You must be signed in to change notification settings

pzoltowski/voronoi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

voronoi

Build Status

The morphological skeleton of an image is the set of its non-zero pixels which are equidistant to its boundaries. More info on Wikipedia.

Thinning an image consits in reducing its non-zero pixels to their morphological skeleton. More info on Wikipedia.

VoronoiSkeleton is a C++ class made for the fast computing of Voronoi diagrams of monochrome images. It contains different implementations of thinning algorithms:

  • Zhang - Suen explained in 'A fast parallel algorithm for thinning digital patterns' by T.Y. Zhang and C.Y. Suen and based on this implentation

  • Guo - Hall explained in 'Parallel thinning with two sub-iteration algorithms' by Zicheng Guo and Richard Hall and based on this implentation

  • a morphological one, based on the erode() and dilate() operators. Coming from previous work by Félix Abecassis.

A special care has been given to optimize the 2 first ones. Instead of re-examining the whole image at each iteration, only the pixels of the current contour are considered. This leads to a speedup by almost 100 times on experimental tests.

Licence

LGPL v3, check file LICENCE.

Dependencies

You need the following libraries before compiling :

  • cmake ( $ sudo apt-get install cmake ),
  • GTest ( $ sudo apt-get install gtest-dev ),
  • OpenCV ( $ sudo apt-get install libopencv-dev )

How to build the program

The project is based on a CMakeLists. It is easy to build the program on a Unix computer. Go in the source folder and type:

$ mkdir build
$ cd build
$ cmake ..
$ make

For Windows users, some instructions are available on OpenCV website: http://opencv.willowgarage.com/wiki/Getting_started .

How to use the program

To display the help, from the main folder, run the generated executable 'build/test_voronoi ' with no arguments. It will display the help of the program.

Related projects

mnist-digits-as-stroke-sequences Code project to transform the well known MNIST handwritten digit images to sequences of pen strokes, in order to obtain a data set for sequence learning.

Authors

Arnaud Ramey arnaud.a.ramey@gmail.com -- Robotics Lab, University Carlos III of Madrid

About

VoronoiSkeleton is a C++ class made for the fast computing of Voronoi diagrams of monochrome images. It contains different implementations of thinning algorithms.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 99.4%
  • CMake 0.6%