scikits-image (or skimage) provides infrastructure and a collection of algorithms for image processing in Python. It is available free of charge, released under a liberal open source license, and developed by an active community of volunteers. This talk introduces the project, explores the underlying architecture, and discusses some challenges faced.
scikits-image started in 2009 as a collection of code snippets gathered from the SciPy mailing list and various individuals. It has since grown into a project with its own identity and a list of contributors numbering more than thirty. While SciPy's ndimage already existed at the time and contained much of the basic routines required for image processing, it never provided adequate infrastructure, and its C code-base proved to be too high a barrier for outside contributions. Instead, scikits-image is implemented in Python (accelerated by Cython where needed) and aims to radically simplify the construction of processing pipelines.
The package covers a wide array of functionality, such as color and exposure manipulation, example data sets, drawing primitives, feature detection, filtering, morphology, segmentation, warping and visualization; all of which we will demonstrate.
While the project has shown significant growth, it also faces challenges, including limited dedicated developer time, a relatively narrow focus (compared to, e.g., data processing or machine learning), the burden of API decisions, competition from commercial vendors, and not-invented-here syndrome (both within and outside the project). Despite these challenges, scikits-image is a testament to the power of voluntary and open collaboration.