Benchmarking : Smil vs scikit-image

Morphological Image Libraries

Some thoughts about Smil and skImage


At the CMM (Centre de Morphologie Mathématique) [L1] we've been writing this kind of software for more than 40 years mainly for our research needs.

It's a good practice to compare, from time to time, what we do with other similar softwares. Good candidates are Scikit-Image and Matlab. We've chosen Scikit-Image because it has the same programming language as Smil (Python) and is widely used in the research community.

scikit-image is a generic image handling library with lots of features. You may take a look at its website [L3].

Smil [L2], is exactly what its name says : A Simple (but efficient) Morphological Image Library. Smil implements most of all algorithms from usual textbooks - Jean Serra [B1] or Pierre Soille [B2], … - and some advanced algorithms resulting from our research.

So, in this benchmark we'll compare these two libraries only from the mathematical morphology point of view and only about performance indicators (speed and resources usage - CPU and memory). Roughly speaking, almost the same indicators are used to compare the computational complexity of different algorithms : time and size [L7].

Smil includes some basic functions not related to mathematical morphology but frequently found in morphological applications or some basic operational functions to be able to build applications without need of other libraries. Nevertheless it can be interfaced to other libraries (e.g. scikit-image) thanks to Numpy.

About Smil history, it results from our research on mathematical morphology and software we're developing and using since the 1970's for our research : AppleMorph, MicroMorph, Xlim, Xlim3d, Morph-M and other application specific softwares.

Smil is being used for many years now on many activities such as :

  • teaching morphological image analysis;

  • doing research in morphological image analysis theory and application domains such as materials engineering and medical image analysis.