Seedwater Segmenter (SWS) is a graphical Python program to interactively segment images and image stacks showing cells in tissue with edge-labels (aka. white outlines). As an example, the image below shows an SWS segmentation of an image of a dragonfly wing from D’Arcy Wentworth Thompson’s classic On Growth and Form.
The philosophy behind SWS is the recognition that fully automatic segmentation is never perfect and what the user really needs are intuitive and easy-to-use tools to manually adjust a segmentation. In SWS, user interventions are entirely based on the editing of seeds, which in turn are expanded by a watershed algorithm. The major difference between SWS and other tools is that you can place more than one seed per cell, which can help you adjust the boundaries of difficult cells.
SWS is built on top of wxPython, matplotlib, numpy, scipy, PIL, and mahotas.
At its core, it uses a lightning-fast watershed algorithm (thanks to the mahotas project) and allows real-time updates. It has a simple (if cluttered) UI and is fully interactive, even including 1-level undo.
SWS was written by graduate student David Mashburn and is detailed in
D.N. Mashburn, H.E. Lynch, X. Ma, M.S. Hutson (2012) “Enabling user-guided segmentation and tracking of surface-labeled cells in time-lapse image sets of living tissues” Cytometry A 81A(5): 409-418 (DOI: 10.1002/cyto.a.22034).
which includes a supplemental video tutorial on how to navigate the SWS user interface and segment images efficiently (27.9 MB).
You can download the latest version of SWS and its source code from any of the following mirrored repositories:
- GitHub: http://github.com/davidmashburn/SeedWaterSegmenter/
- Bitbucket: http://bitbucket.org/davidmashburn/seedwatersegmenter
- Gitorious: http://gitorious.org/seedwatersegmenter
- Google Code: http://code.google.com/p/seedwater/
- PyPI: http://pypi.python.org/pypi/SeedWaterSegmenter